_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
형식 값입니다.
둘 중 하나가 NULL
timeZoneName
0이거나 0보다 작거나 sizeInBytes
둘 다 아닌 경우 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용한 경우 이 함수는 errno
를 EINVAL
로 설정하고 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_s
mktime
localtime
및 기타)가 필요한 함수에 의해 처음 필요할 때 업데이트됩니다. 표준 시간대 정보가 필요하지 않은 함수를 호출하기 전에 호출하지 않으면 먼저 언급된 함수 중 하나 또는 호출_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