localtime, _localtime32, _localtime64

시간 값을 변환하고 현지 표준 시간대에 맞게 수정합니다. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. 를 _localtime64_s_localtime32_s참조하세요.localtime_s

구문

struct tm *localtime( const time_t *sourceTime );
struct tm *_localtime32( const __time32_t *sourceTime );
struct tm *_localtime64( const __time64_t *sourceTime );

매개 변수

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

반환 값

구조체 결과에 대한 포인터를 반환하거나 함수에 전달된 날짜가 다음과 같은 경우 NULL을 반환합니다.

  • 1970년 1월 1일 자정 이전

  • 2038년 1월 19일 03:14:07(UTC) 이후(_time32time32_t 사용)

  • 3000년 12월 31일 23:59:59(UTC) 이후(_time64__time64_t 사용)

__time64_t 구조체를 사용하는 _localtime64는 3000년 12월 31일 23:59:59(UTC - 협정 세계시)까지 날짜를 표현할 수 있습니다. 반면, _localtime32는 2038년 1월 18일 23:59:59(UTC)까지의 날짜를 나타냅니다.

localtime_localtime64로 계산되는 인라인 함수이며 time_t__time64_t와 동일합니다. 컴파일러에서 time_t 를 이전의 32비트 time_t로 해석하게 해야 하는 경우 _USE_32BIT_TIME_T를 정의할 수 있습니다. _USE_32BIT_TIME_T 가 로 평가되도록 합니다 localtime_localtime32. 2038년 1월 18일 이후에 애플리케이션이 실패할 수 있으며 64비트 플랫폼에서는 허용되지 않으므로 권장 _USE_32BIT_TIME_T하지 않습니다.

구조체 형식 tm 의 필드는 다음 값을 저장합니다. 각 값은 다음과 같습니다 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 일광 절약 시간이 적용되는 경우 양수 값입니다. 일광 절약 시간이 적용되지 않으면 0입니다. 일광 절약 시간의 상태 알 수 없는 경우 음수 값입니다.

TZ 환경 변수가 설정된 경우 C 런타임 라이브러리에서는 DST(일광 절약 시간) 계산을 구현하기 위해 미국에 적절한 규칙이 사용된다고 가정합니다.

설명

함수는 localtime 값으로 time_t 저장된 시간을 변환하고 결과를 형식 tm구조에 저장합니다. longsourceTime는 1970년 1월 1일 자정(00:00:00)(UTC) 이후 경과된 초를 나타냅니다. 이 값은 종종 함수에서 time 가져옵니다.

gmtime, mktime, mkgmtimelocaltime의 32비트 및 64비트 버전은 모두 변환을 위해 스레드당 단일 tm 구조체를 사용합니다. 이러한 루틴 중 하나를 호출할 때마다 이전 호출의 결과가 삭제됩니다.

localtime은 사용자가 먼저 전역 환경 변수 TZ를 설정한 경우 현지 표준 시간대에 맞게 수정됩니다. TZ를 설정하면 세 가지 다른 환경 변수(_timezone, _daylight_tzname)도 자동으로 설정됩니다. 변수가 TZ 설정 localtime 되지 않은 경우 제어판 날짜/시간 애플리케이션에 지정된 표준 시간대 정보를 사용하려고 시도합니다. 이 정보를 가져올 수 없는 경우 태평양 표준 시간대를 나타내는 PST8PDT 기본적으로 사용됩니다. 이러한 변수에 대한 설명은 참조 _tzset 하세요. TZ는 Microsoft 확장이며 localtime의 ANSI 표준 정의의 일부가 아닙니다.

참고 항목

대상 환경에서는 일광 절약 시간이 적용되는지 확인해야 합니다.

이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다. null 포인터이거나 값이 sourceTime 음수이면 sourceTime 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우 이 함수는 NULL을 반환하며 errnoEINVAL로 설정합니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT의 전역 상태를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 C 헤더 필수 C++ 헤더
localtime, _localtime32, _localtime64 <time.h> <ctime> 또는 <time.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// crt_localtime.cpp
// compile with: /W3
// This program uses _time64 to get the current time
// and then uses localtime64() 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;

    _time64( &long_time );             // Get time as 64-bit integer.
                                       // Convert to local time.
    newtime = _localtime64( &long_time ); // C4996
    // Note: _localtime64 deprecated; consider _localetime64_s

    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;

    char buff[30];
    asctime_s( buff, sizeof(buff), newtime );
    printf( "%.19s %s\n", buff, am_pm );
}
Tue Feb 12 10:05:58 AM

참고 항목

시간 관리
asctime, _wasctime
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime_s, _localtime32_s, _localtime64_s
time, _time32, _time64
_tzset