다음을 통해 공유


gmtime_s, _gmtime32_s, _gmtime64_s

시간 값을 구조체로 변환합니다. CRT의 보안 기능 에 설명된 대로 보안 향상 기능이 포함 된 _gmtime32, _gmtime64 의 버전입니다.

errno_t gmtime_s(
   struct tm* _tm,
   const __time_t* time
);
errno_t _gmtime32_s(
   struct tm* _tm,
   const __time32_t* time
);
errno_t _gmtime64_s(
   struct tm* _tm,
   const __time64_t* time 
);

매개 변수

  • _tm
    tm 구조체에 대한 포인터입니다. 반환 된 구조체의 필드는 로컬 시간 대신 UTC의 timer 인수의 계산 값을 보유합니다.

  • time
    저장 된 시간에 대한 포인터입니다. 시간은 1970년 1월 1일 자정(00:00:00), coordinated universal time (UTC) 으로 부터 경과 된 초 단위의 시간을 나타냅니다.

반환 값

성공시 0입니다. 오류가 발생한 경우 반환 값은 오류 코드입니다. 오류 코드는 Errno.h에서 정의 됩니다. 이러한 오류 목록은 errno 를 참조하십시오.

오류 조건

_tm

time

반환

_tm의 값

NULL

any

EINVAL

수정 되지 않음

NULL 이 아닙니다 (유효한 메모리 포인트)

NULL

EINVAL

모든 필드를-1로 설정 합니다.

NULL이 아닙니다.

< 0

EINVAL

모든 필드를-1로 설정 합니다.

첫 번째 두 오류 조건에 해당 하는 경우, 잘못 된 매개 변수 처리기가 매개 변수 유효성 검사 에 설명된 대로 호출됩니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 errno 를 EINVAL 로 설정하고 EINVAL을 반환합니다.

설명

_gmtime32_s 함수는 time 값을 분할하고 Time.h 에 정의 된 tm 형식의 구조체에 저장합니다. 구조체의 주소가 _tm 에 전달됩니다. time 의 값은 종종 time 함수에 대한 호출에 의해 얻어집니다.

참고

대상 환경은 일광 절약 시간제가 적용 되는지 확인 합니다.C 런타임 라이브러리는 일광 절약 시간제(DST)의 계산을 실행하는데 미국의 규칙을 사용한다고 가정합니다.

구조체 필드의 각각은 다음 표에 나와있는 int 형입니다.

  • tm_sec
    Seconds after minute (0 – 59).

  • tm_min
    Minutes after hour (0 – 59).

  • tm_hour
    Hours since midnight (0 – 23).

  • tm_mday
    Day of month (1 – 31).

  • tm_mon
    Month (0 – 11; January = 0).

  • tm_year
    Year (current year minus 1900).

  • tm_wday
    Day of week (0 – 6; Sunday = 0).

  • tm_yday
    Day of year (0 – 365; January 1 = 0).

  • tm_isdst
    gmtime에 대해 항상 0입니다.

__time64_t 구조체를 사용하는 _gmtime64_s는 gmtime32_s 가 2038년 1월 19일 03:14:07 UTC 까지의 날짜를 나타낼 수있는 반면, 3000년 12월 31일 23:59:59 UTC 까지의 날짜를 나타 낼 수 있습니다. 1970년 1월 1일 자정은 모든 함수의 날짜 범위의 하한 값입니다.

gmtime_s는 _gmtime64_s로 계산되는 인라인 함수이고 time_t은 __time64_t과 동일합니다. 컴파일어가 이전 32 비트 time_t 로 time_t를 해석 할 수 있도록 하는 경우, _USE_32BIT_TIME_T 를 정의할 수 있습니다. 이렇게 하면 _gmtime32_s 에 인라인 하기 위해 gmtime_s 를 호출합니다. 2038 년 1 월 18 일 후 응용 프로그램이 실패할 수 있으며 64 비트 플랫폼에서 사용할 수 없기 때문에 권장 되지 않습니다.

요구 사항

루틴

필수 헤더

gmtime_s

<time.h>

_gmtime32_s

<time.h>

_gmtime64_s

<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( &ltime );

   // Obtain coordinated universal time: 
   err = _gmtime64_s( &newtime, &ltime );
   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 );
}
  

해당 .NET Framework 항목

참고 항목

참조

시간 관리

asctime_s, _wasctime_s

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime, _gmtime32, _gmtime64

localtime_s, _localtime32_s, _localtime64_s

_mkgmtime, _mkgmtime32, _mkgmtime64

mktime, _mktime32, _mktime64

time, _time32, _time64