mktime, _mktime32, _mktime64

 

게시 날짜: 2016년 11월

Visual Studio 2017 에 대한 최신 설명서는 Visual Studio 2017 설명서를 참조하세요.

현지 시간을 달력 값으로 변환합니다.

time_t mktime(  
   struct tm *timeptr   
);  
__time32_t _mktime32(  
   struct tm *timeptr   
);  
__time64_t _mktime64(  
   struct tm *timeptr   
);  

매개 변수

timeptr
시간 구조;에 대 한 포인터 참조 asctime합니다.

_mktime32인코딩 형식의 값으로 지정 된 달력 시간을 반환 time_t합니다. 경우 timeptr 자정 1970 년 1 월 1 일 이전의 날짜를 참조 하거나 해당 달력 시간을 표현할 수 없는 경우 _mktime32 형식으로 캐스팅 하는 – 1을 반환 time_t합니다. 사용 하는 경우 _mktime32 경우 timeptr 23시 59분: 59 2038 년 1 월 18 일, utc (협정 세계시) 이후 날짜는 참조 형식으로 캐스팅 하는-1을 반환 합니다 time_t합니다.

_mktime64형식으로 캐스팅 한-1을 반환 하는 __time64_t 경우 timeptr 23시 59분: 59, 3000 년 12 월 31 일 UTC 이후 날짜를 참조 합니다.

mktime, _mktime32_mktime64 함수는 제공 된 시간 구조 (불완전할 수 있음)로 가리키는 변환 timeptr 와 완벽 하 게 정의 된 구조에 정규화 된 값을 다음으로 변환 하는 time_t 달력 시간 값입니다. 변환 된 시간은 반환 하는 값과 인코딩이 동일는 시간 함수입니다. 원래 값은 tm_wdaytm_yday 의 구성 요소는 timeptr 구조 무시 되 고 다른 구성 요소의 원래 값은 정상 범위로 제한 되지 않습니다.

mktime_mktime64와 동일한 인라인 함수로 _USE_32BIT_TIME_T를 정의하지 않으면 _mktime32와 동일합니다.

UTC로 조정 후 _mktime32 날짜를 처리 1970 년 1 월 1 일 자정부터 23시 59분: 59 2038 년 1 월 18 일 UTC입니다. _mktime64는 1970년 1월 1일 자정에서 3000년 12월 31일 23:59:59까지의 날짜를 처리합니다. 지정한 날짜가 범위 내에 있더라도 이처럼 조정하면 이러한 함수가 -1을 반환할 할 수 있습니다(time_t, __time32_t 또는 __time64_t로 캐스트). 예를 들어 카이로 이집트 UTC 보다&2; 시간 인 경우&2; 시간이 먼저 차감에 지정한 날짜에서 timeptr;이 이제 해당 날짜가 범위를 벗어날을 넣을 수 있습니다.

이러한 함수는 tm 구조의 유효성을 검사하고 시간 구조를 채우는 데 사용할 수 있습니다. 성공하면 이러한 함수는 tm_wdaytm_yday의 값을 적절하게 설정하고, 지정한 달력 시간을 표현하도록 다른 구성 요소를 설정하지만 해당 값을 강제로 정상 범위 내에 있도록 합니다. tm_mdaytm_mon가 결정될 때까지 tm_year의 최종 값은 설정되지 않습니다. tm 구조 시간을 지정하면 tm_isdst 필드를 다음과 같이 설정합니다.

  • 0은 표준 시간이 적용 중임을 나타냅니다.

  • 0보다 큰 값은 일광 절약 시간이 적용 중임을 나타냅니다.

  • 0보다 작은 값은 C 런타임 라이브러리 코드가 표준 시간 또는 일광 절약 시간이 적용 중인지 여부를 계산하도록 합니다.

C 런타임 라이브러리에서 일광 절약 시간 동작을 결정 합니다는 TZ 환경 변수입니다. 경우 TZ 을 설정 하지 않으면 Win32 API 호출인 GetTimeZoneInformation 운영 체제에서 일광 절약 시간 정보를 가져오는 데 사용 됩니다. 이러한 정보를 가져오지 못하면 라이브러리에서는 일광 절약 시간 계산 구현을 위한 미국의 규칙이 사용된다고 가정합니다. tm_isdst는 필수 필드입니다. 이 필드를 설정하지 않으면 해당 값이 정의되지 않고 이러한 함수의 반환 값을 예측할 수 없습니다. 경우 timeptr 가리키는 tm 구조에 대 한 이전 호출에서 반환 된 asctime, gmtime, 또는 localtime (또는 이러한 함수의 변형)는 tm_isdst 필드에 올바른 값을 포함 합니다.

gmtimelocaltime(그리고 _gmtime32, _gmtime64, _localtime32_localtime64)는 변환을 위해 스레드당 단일 버퍼를 사용합니다. 이 버퍼를 mktime, _mktime32 또는 _mktime64에 제공하면 이전 내용이 소멸됩니다.

이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다. 경우 timeptr 가 null 포인터에 설명 된 대로 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사합니다. 계속해서 실행하도록 허용한 경우 이러한 함수가 -1을 반환하고 errnoEINVAL로 설정합니다.

루틴필수 헤더
mktime<time.h>
_mktime32<time.h>
_mktime64<time.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

모든 버전의 C 런타임 라이브러리입니다.

// crt_mktime.c  
/* The example takes a number of days  
 * as input and returns the time, the current  
 * date, and the specified number of days.  
 */  
  
#include <time.h>  
#include <stdio.h>  
  
int main( void )  
{  
   struct tm  when;  
   __time64_t now, result;  
   int        days;  
   char       buff[80];  
  
   time( &now );  
   _localtime64_s( &when, &now );  
   asctime_s( buff, sizeof(buff), &when );  
   printf( "Current time is %s\n", buff );  
   days = 20;  
   when.tm_mday = when.tm_mday + days;  
   if( (result = mktime( &when )) != (time_t)-1 ) {  
      asctime_s( buff, sizeof(buff), &when );  
      printf( "In %d days the time will be %s\n", days, buff );  
   } else  
      perror( "mktime failed" );  
}  

Current time is Fri Apr 25 13:34:07 2003  
  
In 20 days the time will be Thu May 15 13:34:07 2003  

DateTimeOffset

시간 관리
asctime, _wasctime
gmtime, _gmtime32, _gmtime64
localtime, _localtime32, _localtime64
_mkgmtime, _mkgmtime32, _mkgmtime64
time, _time32, _time64

표시: