_get_tzname

표준 시간대 이름 또는 DST(일광 표준시) 영역 이름의 문자열 표현을 검색합니다.

구문

errno_t _get_tzname(
    size_t* pReturnValue,
    char* timeZoneName,
    size_t sizeInBytes,
    int index
);

매개 변수

pReturnValue
종결자를 포함하는 문자열 길이 timeZoneName 입니다 NULL .

timeZoneName
index에 따른 표준 시간대 이름 또는 일광 표준 시간대 이름(DST)의 표현에 대한 문자열 주소입니다.

sizeInBytes
timeZoneName 문자열의 크기(바이트)입니다.

index
index 검색할 두 표준 시간대 이름 중 하나입니다.

index timeZoneName의 내용 timeZoneName 기본값
0 표준 시간대 이름 "PST"
1 일광 표준 시간대 이름 "PDT"
> 1 또는 < 0 EINVAL로 설정된 errno 수정 안 됨

런타임 "PST" 중에 명시적으로 업데이트되지 않는 한 표준 표준 시간대 및 "PDT" 일광 표준 시간대에 대해 반환됩니다. 자세한 내용은 비고를 참조하세요.

표준 시간대 문자열은 OS 릴리스 간에 동일하지 않습니다. 공식 표준 시간대 이름은 변경할 수 있으며 변경할 수 있습니다.

반환 값

성공하면 0이고, 실패하면 errno 형식 값입니다.

둘 중 하나가 NULLtimeZoneName 0이거나 0보다 작거나 sizeInBytes 둘 다 아닌 경우 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용한 경우 이 함수는 errnoEINVAL로 설정하고 EINVAL을 반환합니다.

오류 조건

pReturnValue timeZoneName sizeInBytes index 반환 값 timeZoneName의 내용
TZ 이름의 크기 NULL 0 0 또는 1 0 수정 안 됨
TZ 이름의 크기 any > 0 0 또는 1 0 TZ 이름
수정 안 됨 NULL > 0 any EINVAL 수정 안 됨
수정 안 됨 any zero any EINVAL 수정 안 됨
수정 안 됨 any > 0 > 1 EINVAL 수정 안 됨

설명

이 함수는 _get_tzname 현재 표준 시간대 이름 또는 DST(일광 표준 시간대 이름)의 timeZoneName 문자열 표현을 값에 index 따라 문자열 크기와 pReturnValue함께 주소로 검색합니다. 0이고 sizeInBytes 0이면 timeZoneName 지정된 표준 시간대와 종료NULL를 모두 유지하는 데 필요한 문자열 크기(바이트)가 반환pReturnValue됩니다.NULL

값은 index 표준 표준 시간대의 경우 0이거나 일광 표준 시간대의 경우 1이어야 합니다. 다른 값에는 결정되지 않은 결과가 있습니다.

기본적으로 "PST" 표준 표준 시간대 및 "PDT" 일광 표준 시간대에 대해 반환됩니다. 실제 표준 시간대 이름은 표준 시간대 정보(예strftime: , ftime, ftime_smktimelocaltime및 기타)가 필요한 함수에 의해 처음 필요할 때 업데이트됩니다. 호출_get_tzname하기 전에 표준 시간대 정보가 필요하지 않은 함수가 호출되지 않으면 먼저 멘션 함수 중 하나를 사용하여 명시적으로 업데이트하거나 호출을 tzset통해 기본값이 반환됩니다. 또한 환경 변수가 TZ 설정된 경우 OS에서 보고한 표준 시간대 이름보다 우선합니다. 이 경우에도 위에서 멘션 함수 중 하나를 호출 _get_tzname 해야 호출되거나 기본 표준 시간대 값이 반환됩니다. 환경 변수 및 CRT에 TZ 대한 자세한 내용은 다음을 참조하세요 _tzset.

Warning

표준 시간대 문자열은 OS 릴리스 간에 동일하지 않습니다. 공식 표준 시간대 이름은 변경할 수 있으며 변경할 수 있습니다.

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

예시

이 샘플에서는 현재 일광 표준 시간대 이름을 표시하는 데 필요한 버퍼 크기를 가져오기 위해 호출 _get_tzname 하고, 해당 크기의 버퍼를 할당하고, 다시 호출 _get_tzname 하여 버퍼에 이름을 로드하고, 콘솔에 출력합니다.

또한 OS가 호출하기 전에 표준 시간대 정보를 업데이트하도록 호출 _tzset()_get_tzname()합니다. 그렇지 않으면 기본값이 사용됩니다.

// crt_get_tzname.c
// Compile by using: cl /W4 crt_get_tzname.c
#include <stdio.h>
#include <time.h>
#include <malloc.h>

enum TZindex {
    STD,
    DST
};

int main()
{
    size_t tznameSize = 0;
    char * tznameBuffer = NULL;

    _tzset(); // Update the time zone information

    // Get the size of buffer required to hold DST time zone name
    if (_get_tzname(&tznameSize, NULL, 0, DST))
    {
        return 1;    // Return an error value if it failed
    }

    // Allocate a buffer for the name
    if (NULL == (tznameBuffer = (char *)(malloc(tznameSize))))
    {
        return 2;    // Return an error value if it failed
    }

    // Load the name in the buffer
    if (_get_tzname(&tznameSize, tznameBuffer, tznameSize, DST))
    {
        return 3;    // Return an error value if it failed
    }

    printf_s("The current Daylight standard time zone name is %s.\n", tznameBuffer);
    return 0;
}

출력

The current Daylight standard time zone name is Pacific Daylight Time.

요구 사항

루틴에서 반환된 값 필수 헤더
_get_tzname <time.h>

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

참고 항목

시간 관리
errno, _doserrno, _sys_errlist_sys_nerr
_get_daylight
_get_dstbias
_get_timezone