시간 값을 tm
구조체로 변환합니다. 이러한 함수는 _gmtime32
버전, CRT 보안 기능에 설명된 것 처럼 보안 기능이 향상된 _gmtime64
입니다.
구문
errno_t gmtime_s(
struct tm* tmDest,
const __time_t* sourceTime
);
errno_t _gmtime32_s(
struct tm* tmDest,
const __time32_t* sourceTime
);
errno_t _gmtime64_s(
struct tm* tmDest,
const __time64_t* sourceTime
);
매개 변수
tmDest
tm
구조체에 관한 포인터입니다. 반환된 구조체의 필드에는 현지 시간이 아닌 UTC로 계산된 timer
인수 값이 포함됩니다.
sourceTime
저장된 시간에 대한 포인터입니다. 시간은 1970년 1월 1일 자정(00:00:00)(UTC(협정 세계시)) 이후 경과한 시간(초)으로 표현됩니다.
반환 값
정상적으로 실행되는 경우 0입니다. 오류가 있는 경우 반환 값은 오류 코드입니다. 오류 코드는 Errno.h
; 에 정의되어 있습니다. 이러한 오류 목록은 errno
(을)를 참조하세요.
오류 조건
tmDest |
sourceTime |
반환 값 | tmDest 의 값 |
---|---|---|---|
NULL |
any | EINVAL |
수정되지 않습니다. |
NULL 아님(유효한 메모리를 가리킴) |
NULL |
EINVAL |
모든 필드가 -1로 설정됩니다. |
NULL 아님 |
< 0 | EINVAL |
모든 필드가 -1로 설정됩니다. |
처음 두 오류 조건은 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우 이러한 함수는 errno
를 EINVAL
로 설정하고 EINVAL
을 반환합니다.
설명
_gmtime32_s
함수는 sourceTime
값을 분해하고 Time.h
에 정의된 tm
형식의 구조에 저장합니다. 구조체 주소는 tmDest
에 전달됩니다. sourceTime
값은 종종 time
함수 호출에서 가져옵니다.
각 구조체 필드는 다음 표에 나와 있는 대로 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_s 의 경우 항상 0입니다. |
__time64_t
구조체를 사용하는 _gmtime64_s
는 3000년 12월 31일 23:59:59(UTC)까지 날짜를 표현할 수 있습니다. 반면, gmtime32_s
는 2038년 1월 18일 23:59:59(UTC)까지의 날짜만 나타냅니다. 1970년 1월 1일 자정은 이러한 두 함수 모두에 대한 날짜 범위의 하한입니다.
gmtime_s
는 _gmtime64_s
로 계산되는 인라인 함수이며 time_t
는 __time64_t
와 동일합니다. 컴파일러에서 time_t
를 이전의 32비트 time_t
로 해석하게 해야 하는 경우 _USE_32BIT_TIME_T
를 정의할 수 있습니다. _USE_32BIT_TIME_T
로 gmtime_s
(이)가 _gmtime32_s
(으)로 인라인 될 수 있습니다. 2038년 1월 18일 이후에 애플리케이션이 실패할 수 있고 64비트 플랫폼에서 허용되지 않으므로 _USE_32BIT_TIME_T
(은)는 권장하지 않습니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
요구 사항
루틴에서 반환된 값 | 필수 C 헤더 | 필수 C++ 헤더 |
---|---|---|
<time.h> |
<ctime> 또는 <time.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// crt_gmtime64_s.c
// This program uses _gmtime64_s to convert a 64-bit
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime_s to
// convert this structure to an output string.
#include <time.h>
#include <stdio.h>
int main( void )
{
struct tm newtime;
__int64 ltime;
char buf[26];
errno_t err;
_time64( <ime );
// Obtain coordinated universal time:
err = _gmtime64_s( &newtime, <ime );
if (err)
{
printf("Invalid Argument to _gmtime64_s.");
}
// Convert to an ASCII representation
err = asctime_s(buf, 26, &newtime);
if (err)
{
printf("Invalid Argument to asctime_s.");
}
printf( "Coordinated universal time is %s\n",
buf );
}
Coordinated universal time is Fri Apr 25 20:12:33 2003