2009-10-25 4 views
5

나는 1970 년 이래로 초 (마이크로 초)를 사용하는 날짜와 시간대 및 dst 플래그를 나타냅니다. strftime을 사용하여 날짜 표현을 인쇄하고 싶지만, 환경에서 가져온 표준 시간대 (extern long int timezone)에 대한 전역 값을 사용합니다. 내가 선택한 영역을 인쇄하기 위해 strftime을 어떻게 얻을 수 있습니까?strftime을 호출하기 전에 시간대를 어떻게 설정할 수 있습니까?

답변

6

다음 프로그램은 필요한 표준 시간대로 UNIX 환경 변수 TZ를 설정 한 다음 strftime을 사용하여 형식화 된 시간을 인쇄합니다.

아래 예에서 표준 시간대는 미국 태평양 표준 시간대로 설정됩니다.

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

int main (int argc, char *argv[]) 
{ 
    struct tm *mt; 
    time_t mtt; 
    char ftime[10]; 

    setenv("TZ", "PST8PDT", 1); 
    tzset(); 
    mtt = time(NULL); 
    mt = localtime(&mtt); 
    strftime(ftime,sizeof(ftime),"%Z %H%M",mt); 

    printf("%s\n", ftime); 
} 
1

timezone 전역 변수를 설정하여 시간대를 변경하고 strftime을 통해 인쇄하는 시간을 얻으려면 localtime을 사용하십시오.

관련 문제