亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5169 | 回復(fù): 0
打印 上一主題 下一主題

關(guān)于夏令時(shí)取時(shí)間戳的問題。 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-06-15 10:50 |只看該作者 |倒序?yàn)g覽
根據(jù)用戶輸入需要對(duì)應(yīng)的日期轉(zhuǎn)成時(shí)間戳傳給程序,用的是struct tm賦值, mktime(&tm)轉(zhuǎn)時(shí)間戳。
問題是,當(dāng)系統(tǒng)的時(shí)區(qū)調(diào)到支持夏令時(shí)區(qū)時(shí),(.e.g. GMT-5)則會(huì)在進(jìn)出夏令時(shí)有問題,


測試程序如下:
//GMT-5

        struct tm tm1;
        struct tm tm2;
        time_t clock;
        //3-8 00:00

        memset(&tm1, 0, sizeof(tm1));
        memset(&tm2, 0, sizeof(tm2));
        tm1.tm_year = 109;
        tm1.tm_mon = 2;
        tm1.tm_mday = 8;
        tm1.tm_hour = 0;
        tm1.tm_min = 0;
        tm1.tm_sec = 0;
        tm1.tm_isdst = 0;
        printf("before: %04d-%02d-%02d %02d:%02d:%02d\n", tm1.tm_year+1900,tm1.tm_mon+1,tm1.tm_mday,tm1.tm_hour,tm1.tm_min,tm1.tm_sec);
        printf("before: tm_isdst = %d\n", tm1.tm_isdst);
        clock = mktime(&tm1);
        printf("%d\n", (int)clock);
        localtime_r(&clock, &tm2);
        printf("after: %04d-%02d-%02d %02d:%02d:%02d\n", tm2.tm_year+1900,tm2.tm_mon+1,tm2.tm_mday,tm2.tm_hour,tm2.tm_min,tm2.tm_sec);
        //printf("%s\n", tm1.tm_zone);

        
        printf("------------------------------\n");
        
        //11-2 00:00

        memset(&tm1, 0, sizeof(tm1));
        memset(&tm2, 0, sizeof(tm2));
        tm1.tm_year = 109;
        tm1.tm_mon = 10;
        tm1.tm_mday = 1;
        tm1.tm_hour = 0;
        tm1.tm_min = 0;
        tm1.tm_sec = 0;
        tm1.tm_isdst = 0;
        printf("before: %04d-%02d-%02d %02d:%02d:%02d\n", tm1.tm_year+1900,tm1.tm_mon+1,tm1.tm_mday,tm1.tm_hour,tm1.tm_min,tm1.tm_sec);
        printf("before: tm_isdst = %d\n", tm1.tm_isdst);
        clock = mktime(&tm1);
        printf("%d\n", (int)clock);
        localtime_r(&clock, &tm2);
        printf("after: %04d-%02d-%02d %02d:%02d:%02d\n", tm2.tm_year+1900,tm2.tm_mon+1,tm2.tm_mday,tm2.tm_hour,tm2.tm_min,tm2.tm_sec);
        



當(dāng)tm.tm_isdst = 0 (不啟用夏令時(shí))時(shí),則進(jìn)入夏令時(shí)OK,出夏令時(shí)會(huì)多一個(gè)小時(shí)。
root@UTM25:/opt/CPSecure/webui/private# ./test
before: 2009-03-08 00:00:00
before: tm_isdst = 0
1236488400
after: 2009-03-08 00:00:00
------------------------------
before: 2009-11-01 00:00:00
before: tm_isdst = 0
1257051600
after: 2009-11-01 01:00:00


當(dāng)tm.tm_isdst = 1(啟用夏令時(shí)) 時(shí),則進(jìn)入夏令時(shí)時(shí)間會(huì)提前一個(gè)小時(shí),出夏令時(shí)OK。
root@UTM25:/opt/CPSecure/webui/private# ./test
before: 2009-03-08 00:00:00
before: tm_isdst = 1
1236484800
after: 2009-03-07 23:00:00

------------------------------
before: 2009-11-01 00:00:00
before: tm_isdst = 1
1257048000
after: 2009-11-01 00:00:00

[ 本帖最后由 flyfeel 于 2009-6-15 10:57 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP