@mrZurg

C++ Как получить время по Гринвичу, а не своего часового пояса?

Задаю время примерно так:
time_t seconds = 100000;//количество секунд с 1970г
char buffer[40];
struct tm timeinfo;

localtime_s(&timeinfo, &seconds);
char* format = "%H:%M:%S";
strftime(buffer, 40, format, &timeinfo);
string dat = (buffer);


В итоге получаю дату, со смещением во времени(например для Москвы: +3 часа), а необходимо получать для нулевого часового пояса, как?
  • Вопрос задан
  • 4125 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Для C++11:
#include <iostream>
#include <iomanip>
#include <ctime>
 
int main()
{
    std::time_t t = std::time(nullptr);
    std::cout << "UTC:   " << std::put_time(std::gmtime(&t), "%c %Z") << '\n';
    std::cout << "local: " << std::put_time(std::localtime(&t), "%c %Z") << '\n';
}


Для более ранних:
struct tm * gmtime (const time_t * timer);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы