[問題] 夏令時區(embed linux)

看板C_and_CPP作者 (大熱豔陽天)時間10年前 (2013/08/25 17:00), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Embed linux gcc linux ver:mips-linux-2.6.31 ntpclient 比較(my pc) Lubuntu 12.04 ntpd 問題(Question): 請容許我以此方式敘述問題… [目的] 在device上判斷設定的國家是否有夏令(daylight saving time) 問出在以下platform的第二設(澳洲夏令) [測試方式] 判斷是否有夏令code{ntp_dst}: time(&clock_1); tm1 = *localtime(&clock_1); tm1.tm_isdst = 0; tm2 = tm1; tm2.tm_isdst = -1; mktime(&tm1); mktime(&tm2); strftime(szBuffer_1, nBufferlen, "%Y-%m-%d %h:%m:%s", &tm1); strftime(szBuffer_2, nBufferlen, "%Y-%m-%d %h:%m:%s", &tm2); /* 如差1hr,有夏令時間 */ printf("%s, %s", szBuffer_1, szBuffer_2); pc端: 第一設{美國夏令時間:2013/3/10開始,2013/11/3結束} cmd:cp /usr/share/zoneinfo/America/New_York /etc/localtime cmd:date Sun Aug 25 16:00:00 CST 2013 => ......EDT 2013 cmd:ntp_dst 有夏令…試過3/9, 3/10 & 11/3, 11/4…符合夏令區間 第二設{澳洲夏令時間:2013/4/7結束,2013/10/6開始} ……重覆以上……也符合 platform: 第一設{美國夏令:2013/3/10開始,2013/11/3結束} 試過cp ...../America/New_York .../localtime但沒作用…找到是 判斷etc/TZ,所以: echo "EST5EDT" > /etc/TZ (/America/New_York 最後行的時區) cmd:date Sun Aug 25 16:00:00 UTC 2013 => ......EDT 2013 cmd:ntp_dst 有夏令…試過3/9, 3/10.....符合夏令區間 第二設{澳洲夏令:2013/3/10開始,2013/11/3結束} echo "EST-10EST" > /etc/TZ (/Australia/Melbourne 最後一行的時區) cmd:date Sun Aug 25 16:00:00 UTC 2013 => ......EST 2013 cmd:ntp_dst 有夏令…不合理!!!!!!!!!!! 因澳洲夏令(2013/4/7結束,2013/10/6開始) ---> 問題點: 將日期改3/9, 3/10, 11/3, 11/4,竟符合美國夏令時間???????? 補充說明(Supplement): 百思不解為何在platform設定澳洲時區後仍是美國夏令區間? 希望有人能指點小弟一二…感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.224.210.183

08/26 16:58, , 1F
自答…連後面的time也要…如EST5EDT,M3.2.0,M11.1.0
08/26 16:58, 1F
文章代碼(AID): #1I6SUikj (C_and_CPP)