Функция gmtime
Функция gmtime преобразует календарное время, хранящееся в переменной типа time_t, в структуру tm. В отличие от функции localtime, которая учитывает локальный часовой пояс, gmtime возвращает время в формате UTC (Coordinated Universal Time). Функция принимает один параметр - указатель на объект типа time_t, который содержит количество секунд, прошедших с 1 января 1970 года. Возвращается указатель на статическую структуру tm, которая содержит поля для года, месяца, дня, часа, минуты и секунды.
Синтаксис
struct tm* gmtime(const time_t* timer);
Пример
Давайте получим текущее время и преобразуем его в формат UTC с помощью функции gmtime, а затем выведем компоненты времени на экран:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
time_t now = time(nullptr);
tm* utc = gmtime(&now);
cout << "Year: " << utc->tm_year + 1900 << endl;
cout << "Month: " << utc->tm_mon + 1 << endl;
cout << "Day: " << utc->tm_mday << endl;
cout << "Hour: " << utc->tm_hour << endl;
cout << "Minute: " << utc->tm_min << endl;
cout << "Second: " << utc->tm_sec << endl;
return 0;
}
Результат выполнения кода (значения зависят от текущего времени):
"Year: 2026"
"Month: 9"
"Day: 12"
"Hour: 14"
"Minute: 30"
"Second: 45"
Пример
Давайте преобразуем конкретную метку времени в UTC и выведем её в формате строки с помощью функции strftime:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
time_t timestamp = 1234567890;
tm* utc = gmtime(×tamp);
char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", utc);
cout << "UTC time: " << buffer << endl;
return 0;
}
Результат выполнения кода:
"UTC time: 2009-02-13 23:31:30"