Поделиться через


gmtime, _gmtime32, _gmtime64

Преобразует значение времени в структуру. Существуют более безопасные версии этих функций; см. раздел gmtime_s, _gmtime32_s, _gmtime64_s.

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

Параметры

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

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

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

  • 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 для преобразования. Каждый вызов одной из этих функций уничтожает результат любого предыдущего вызова. Если timer представляет дату перед полуночью 1-го января 1970, gmtime возвращает NULL. Нет какого-либо возврата ошибки.

Функция _gmtime64, которая использует структуру __time64_t, разрешает даты до 23:59:59, 31-е декабря 3000, UTC; тогда как _gmtime32 представляет даты только до 03:14:07, 19-января 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. Рекомендуется не делать этого, поскольку это не поддерживается на 64 разрядных платформах и, в любом случае ваше приложение может завершиться с ошибкой после 18-ого января 2038.

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

Заметки

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

Примечание

В большинстве случаев среда целевого объекта пытается определить, действует ли летнее время.Библиотека времени выполнения C принимает правила Соединенных Штатов для реализации проверки на летнее время (DST).

Требования

Подпрограмма

Обязательный заголовок

gmtime

<time.h>

_gmtime32

<time.h>

_gmtime64

<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 );
}
  

Эквивалент в .NET Framework

См. также

Ссылки

Управление временем

asctime, _wasctime

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime, _localtime32, _localtime64

_mkgmtime, _mkgmtime32, _mkgmtime64

mktime, _mktime32, _mktime64

time, _time32, _time64