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( <ime );
// Obtain coordinated universal time:
newtime = _gmtime64( <ime ); // 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
См. также
Ссылки
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime, _localtime32, _localtime64