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