저는 C 응용 프로그램에서 time(NULL)
함수를 사용하여 1970 년 이래로 초를 얻었습니다. 차이점이 1 시간 인 정보가 반환되고있는 것으로 나타났습니다.DOS의 "일광 절약 시간"
그런 다음 localtime
을 사용하여 결과를 tm
구조로 변환하려고 시도한 다음 tm_isdst
필드가 설정되는 것으로 나타났습니다.
코드는 다음과 같다 : 처음에 printf
time_t tempo;
struct tm sttime;
memset(&sttime, 0, sizeof(sttime));
tempo = time(NULL);
printf("%d\n", tempo);
sttime = *(localtime(&tempo));
sttime.tm_isdst = 0;
tempo = mktime(&sttime);
printf("%d\n", tempo);
, tempo
는 한 시간 차이로 인쇄되고있다. 두 번째에서는 올바른 값을 인쇄하고 있습니다.
Ms DOS 6.0
OS에서 응용 프로그램을 실행 중이고 응용 프로그램이 Watcom v1.3
으로 컴파일되고 있습니다.
여기에서 오는 정보는 Daylight Savings Time
입니까? DOS가이 정보를 보유하고 있습니까?
Linux에서 코드를 실행하려고하면 1 시간 차이가 있습니다. – ldav1s