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 항목
참고 항목
참조
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s