我正在使用C應用程序的time(NULL)
函數來獲得自1970年以來我已經注意到,它返回用1小時的時差信息的秒。「夏令時」,在DOS
然後我試圖將結果轉換爲tm
結構使用localtime
,然後我注意到tm_isdst
字段正在設置。
的代碼是這樣的:
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);
在第一printf
,tempo
是爲打印與差的一小時。第二,它打印正確的值。
我在Ms DOS 6.0
操作系統中運行應用程序,並且該應用程序正在編譯Watcom v1.3
。
哪裏Daylight Savings Time
信息是從哪裏來的? DOS是否擁有這些信息?
當我嘗試運行上的Linux的代碼,我看到的差異也是一個小時: – ldav1s