gmtime, , _gmtime32_gmtime64

Преобразует time_t значение времени в структуру tm . Доступны более безопасные версии этих функций; see , , _gmtime64_s_gmtime32_s.gmtime_s

Синтаксис

struct tm *gmtime( const time_t *sourceTime );
struct tm *_gmtime32( const __time32_t *sourceTime );
struct tm *_gmtime64( const __time64_t *sourceTime );

Параметры

sourceTime
Указатель на хранимое время. Время представляется в виде секунд, истекших после полуночи (00:00:00) 1-го января 1970 года, время в формате UTC.

Возвращаемое значение

Указатель на структуру типа tm. Поля возвращаемой структуры содержат вычисленное значение аргумента sourceTime в формате UTC, а не по местному времени. Каждое из полей структуры имеет тип int, как описано далее:

Поле Description
tm_sec Секунды после минуты (0 – 59).
tm_min Минуты после часа (0 – 59).
tm_hour Часы с полуночи (0 – 23).
tm_mday День месяца (1 – 31).
tm_mon Месяц (0 – 11; Январь = 0).
tm_year Год (текущий год минус 1900).
tm_wday День недели (0 – 6; Воскресенье = 0).
tm_yday День года (0 – 365; 1 января = 0).
tm_isdst Всегда 0 для gmtime.

32- и 64-разрядные версии функций gmtime, mktime, mkgmtime и localtime для преобразования используют одну общую для каждого потока структуру tm. Каждый вызов одной из этих функций уничтожает результат любого предыдущего вызова. Если sourceTime представляет дату перед полночью 1-го января 1970 года, функция gmtime возвращает значение NULL. Не возвращается ошибка.

_gmtime64, который использует структуру __time64_t , позволяет выразить даты до 23:59:59, 31 декабря 3000 г. в формате UTC. _gmtime32 представлены только даты до 23:59:59 18 января 2038 г., UTC. Полночь 1-ого января 1970 года — нижняя граница диапазона дат для обеих функций.

gmtime — это подставляемая функция, эквивалентная функции _gmtime64; функция time_t эквивалентна функции __time64_t, если не определена директива _USE_32BIT_TIME_T. Если необходимо, чтобы компилятор принудительно интерпретировал структуру time_t как старую 32-разрядную структуру time_t, можно определить директиву _USE_32BIT_TIME_T, но это приводит к тому, что функция gmtime подставляется в код как функция _gmtime32, а структура time_t определяется как __time32_t. Мы не рекомендуем использовать _USE_32BIT_TIME_Tего, так как он не разрешен на 64-разрядных платформах. В любом случае приложение может завершиться ошибкой после 18 января 2038 г.

Эти функции проверяют свои параметры. Если sourceTime это указатель или sourceTime значение отрицательное, эти функции вызывают недопустимый NULL обработчик параметров, как описано в разделе проверки параметров. Если выполнение может быть продолжено, эти функции возвращают NULL и устанавливают параметр errno в значение EINVAL.

Замечания

Функция _gmtime32 разбивает sourceTime значение и сохраняет его в статически выделенной структуре типа tm, определенной в TIME.H. Значение параметра sourceTime обычно получается из вызова функции time.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Требования

Маршрут Обязательный заголовок C Обязательный заголовок C++
gmtime, , _gmtime32_gmtime64 <time.h> <ctime> или <time.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_gmtime.c
// compile with: /W3
// This program uses _gmtime64 to convert a long-
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime to
// convert this structure to an output string.

#include <time.h>
#include <stdio.h>

int main(void)
{
   struct tm *newtime;
   __int64 ltime;
   char buff[80];

   _time64( &ltime );

   // Obtain coordinated universal time:
   newtime = _gmtime64( &ltime ); // C4996
   // Note: _gmtime64 is deprecated; consider using _gmtime64_s
   asctime_s( buff, sizeof(buff), newtime );
   printf( "Coordinated universal time is %s\n", buff );
}
Coordinated universal time is Tue Feb 12 23:11:31 2002

См. также

Управление временем
asctime, _wasctime
ctime, , _ctime32_wctime_ctime64_wctime32,_wctime64
_ftime, , _ftime32_ftime64
gmtime_s, , _gmtime32_s_gmtime64_s
localtime, , _localtime32_localtime64
_mkgmtime, , _mkgmtime32_mkgmtime64
mktime, , _mktime32_mktime64
time, , _time32_time64