다음을 통해 공유


localtime_s, _localtime32_s, _localtime64_s

시간 값을 변환 하 고 현지 표준 시간대를 수정 합니다.이러한 버전의 있습니다 로컬 시간, _localtime32, _localtime64 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.

errno_t localtime_s(
   struct tm* _tm,
   const time_t *time 
);
errno_t _localtime32_s(
   struct tm* _tm,
   const time32_t *time 
);
errno_t _localtime64_s(
   struct tm* _tm,
   const _time64_t *time 
);

매개 변수

  • _tm
    채울 수 있도록 시간 구조에 대 한 포인터입니다.

  • time
    저장 된 시간에 대 한 포인터입니다.

반환 값

성공 하는 경우에 0입니다.실패 하면 반환 값은 오류 코드입니다.오류 코드는 errno.h에 정의 됩니다.이러한 오류에 대 한 목록을 참조 하십시오. errno.

오류 조건

_tm

time

반환 값

값_tm

잘못 된 매개 변수 처리기를 호출합니다.

NULL

모든

EINVAL

수정 되지 않음

않은 NULL (올바른 메모리를 가리키는)

NULL

EINVAL

모든 필드를-1로 설정

않은 NULL (올바른 메모리를 가리키는)

보다 작으면 0 보다 크고_MAX__TIME64_T

EINVAL

모든 필드를-1로 설정

아니요

첫 번째 두 오류 조건을 경우에 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.실행을 계속 수 있으면 이러한 함수를 설정 errno 에 EINVAL 를 반환 하 고 EINVAL.

설명

_localtime32_s 함수 변환으로 저장 한 시간을 time_t 형식의 구조에 결과 저장 한 tm.long 값 timer 초 자정 이후 경과 된 시간을 나타냅니다 (00: 00: 00), 1970 년 1 월 1 일 UTC입니다.이 값은 일반적으로 가져옵니다의 time 함수입니다.

_localtime32_s사용자가 먼저 전역 환경 변수를 설정 하는 경우 현지 표준 시간대에 대 한 해결 TZ.때 TZ 입니다, 세 가지 다른 환경 변수 설정 (_timezone, _daylight, 및 _tzname)도 자동으로 설정 됩니다.경우는 TZ 변수가 설정 되지 않았습니다. localtime32_s 제어판에서 날짜/시간 응용 프로그램에 지정 된 표준 시간대 정보를 사용 합니다.이 정보를 가져올 수 없는 경우, 태평양 표준 시간대를 의미 하는 PST8PDT 기본적으로 사용 됩니다.참조 하십시오 _tzset 에 대 한 설명은 이러한 변수를 합니다.TZMicrosoft 확장 및 ANSI 표준 정의 일부가 아닌 localtime.

[!참고]

대상 환경 일광 절약 시간이 적용 되는지 결정 하십시오.

_localtime64_s사용 하는 __time64_t 구조, 날짜 23시 59분: 59부터, 3000 년 12 월 31에 협정 세계시 (UTC)를 표현 하는 반면 있습니다 _localtime32_s 통해 03시 14분: 07 2038 1 월 19 일에 UTC 날짜를 나타냅니다.

localtime_s산출 하는 인라인 함수 이며 _localtime64_s, 및 time_t 입니다 __time64_t.해석 하도록 컴파일러를 강제 하는 경우 time_t 로 이전 32 비트 time_t를 정의할 수 있습니다 _USE_32BIT_TIME_T.그러면 이렇게 하면 localtime_s 평가 _localtime32_s.2038 년 1 월 19 일 후 응용 프로그램이 실패 하 고 64 비트 플랫폼에서 사용할 수 없습니다 때문에 권장 되지 않습니다.

구조체 형식의 필드가 tm 의 다음 값을 저장 합니다.는 int.

  • tm_sec
    시간 (초) 후 1 분 (0-59).

  • tm_min
    분 (0-59).

  • tm_hour
    자정 이후의 시간 (0-23).

  • tm_mday
    월 (1 – 31)의 일입니다.

  • tm_mon
    달 (0-11. 1 월 = 0).

  • tm_year
    1 년 (현재 연도 1900 뺀)입니다.

  • tm_wday
    요일 (0-6. 0 = 일요일).

  • tm_yday
    연간 일자 (0-365. 1 월 1 일 = 0).

  • tm_isdst
    일광 절약 시간이 적용 되는 경우 양수 값입니다. 일광 절약 시간제가 적용 되지 않는 경우 0입니다. 일광 절약 시간 상태를 알 수 없는 경우 음수 값입니다.경우는 TZ 환경 변수를 설정할 때는 일광 절약 시간제 (DST)의 계산을 구현 하는 데 규칙 C 런타임 라이브러리에 해당 하는 미국 가정.

요구 사항

루틴

필수 헤더

localtime_s

<time.h>

_localtime32_s

<time.h>

_localtime64_s

<time.h>

더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_localtime_s.c
/* This program uses _time64 to get the current time 
 * and then uses _localtime64_s() to convert this time to a structure 
 * representing the local time. The program converts the result 
 * from a 24-hour clock to a 12-hour clock and determines the 
 * proper extension (AM or PM).
 */

#include <stdio.h>
#include <string.h>
#include <time.h>

int main( void )
{
        struct tm newtime;
        char am_pm[] = "AM";
        __time64_t long_time;
        char timebuf[26];
        errno_t err;

        // Get time as 64-bit integer.
        _time64( &long_time ); 
        // Convert to local time.
        err = _localtime64_s( &newtime, &long_time ); 
        if (err)
        {
            printf("Invalid argument to _localtime64_s.");
            exit(1);
        }
        if( newtime.tm_hour > 12 )        // Set up extension. 
                strcpy_s( am_pm, sizeof(am_pm), "PM" );
        if( newtime.tm_hour > 12 )        // Convert from 24-hour 
                newtime.tm_hour -= 12;    // to 12-hour clock. 
        if( newtime.tm_hour == 0 )        // Set hour to 12 if midnight.
                newtime.tm_hour = 12;

        // Convert to an ASCII representation. 
        err = asctime_s(timebuf, 26, &newtime);
        if (err)
        {
           printf("Invalid argument to asctime_s.");
           exit(1);
        }
        printf( "%.19s %s\n", timebuf, am_pm );
}

샘플 출력

Fri Apr 25 01:19:27 PM

해당 .NET Framework 항목

System::DateTime::ToLocalTime

참고 항목

참조

시간 관리

asctime_s, _wasctime_s

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime, _localtime32, _localtime64

time, _time32, _time64

_tzset