time_t
시간 값을 tm
구조체로 변환합니다. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. gmtime_s
, _gmtime32_s
, _gmtime64_s
(을)를 참조하세요.
구문
struct tm *gmtime( const time_t *sourceTime );
struct tm *_gmtime32( const __time32_t *sourceTime );
struct tm *_gmtime64( const __time64_t *sourceTime );
매개 변수
sourceTime
저장된 시간에 대한 포인터입니다. 시간은 1970년 1월 1일 자정(00:00:00)(UTC(협정 세계시)) 이후 경과한 시간(초)으로 표현됩니다.
반환 값
tm
형식의 구조체에 대한 포인터입니다. 반환된 구조체의 필드에는 현지 시간이 아닌 UTC로 계산된 sourceTime
인수 값이 포함됩니다. 각 구조체 필드는 다음과 같이 int
형식입니다.
필드 | 설명 |
---|---|
tm_sec |
분 후 초(0 - 59). |
tm_min |
시간 후 분(0 - 59). |
tm_hour |
자정 이후의 시간(0 - 23). |
tm_mday |
월의 일(1 - 31). |
tm_mon |
월(0 - 11; 1월 = 0). |
tm_year |
연도(현재 연도 - 1900). |
tm_wday |
요일(0 - 6; 일요일 = 0). |
tm_yday |
연중 일(0 - 365; 1월 1일 = 0). |
tm_isdst |
gmtime 의 경우 항상 0입니다. |
gmtime
, mktime
, mkgmtime
및 localtime
의 32비트 및 64비트 버전은 모두 변환을 위해 스레드당 하나의 공통 tm
구조체를 사용합니다. 이러한 함수 중 하나를 호출할 때마다 이전 호출의 결과가 삭제됩니다. sourceTime
가 1970년 1월 1일 자정(UTC) 이전의 날짜를 나타내면 gmtime
은 NULL
을 반환합니다. 오류 반환이 없습니다.
__time64_t
구조를 사용하는 _gmtime64
은(는) UTC 3000년 12월 31일 23:59:59까지 날짜를 표현할 수 있습니다. _gmtime32
은(는) UTC 2038년 1월 18일 23:59:59까지의 날짜만 나타냅니다. 1970년 1월 1일 자정은 두 함수 모두에 대한 날짜 범위의 하한입니다.
gmtime
은 _gmtime64
로 계산되는 인라인 함수이며 time_t
는 _USE_32BIT_TIME_T
가 정의되지 않은 경우 __time64_t
와 동일합니다. 컴파일러에서 time_t
를 이전 32비트 time_t
로 해석하게 해야 하는 경우 _USE_32BIT_TIME_T
를 정의할 수 있지만, 이렇게 하면 gmtime
이 _gmtime32
에 인라인되고 time_t
가 __time32_t
로 정의됩니다. 64비트 플랫폼에서는 허용되지 않으므로 _USE_32BIT_TIME_T
을(를) 사용하지 않는 것이 좋습니다. 어쨌든 애플리케이션은 2038년 1월 18일 이후에 실패할 수 있습니다.
이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다. sourceTime
이(가) NULL
포인터이거나 sourceTime
값이 음수인 경우 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우 이 함수는 NULL
을 반환하며 errno
를 EINVAL
로 설정합니다.
설명
_gmtime32
함수는 sourceTime
값을 분할하고 TIME.H
에 정의된 tm
형식의 정적으로 할당된 구조체에 저장합니다. sourceTime
값은 대개 time
함수 호출에서 가져옵니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
요구 사항
루틴에서 반환된 값 | 필수 C 헤더 | 필수 C++ 헤더 |
---|---|---|
<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