天天看點

UTC時區表(.Net)

    最近在項目中Fix了一個跨時區的bug,為了Fix這個bug真是費了九牛二虎之力呀。就現在看來主要原因還是平時的開發任務沒有涉及到這方面的概念,并且測試跨時區功能的Test Case也比較的難寫。為了以後能順利的解決跨時區功能的問題,制作了張跨時區表,總共102個時區:

UTC時區表

Dateline Standard Time|UTC-12:00 UTC-11|UTC-11:00 Hawaiian Standard Time|UTC-10:00
Alaskan Standard Time|UTC-09:00 Pacific Standard Time (Mexico)|UTC-08:00 Pacific Standard Time|UTC-08:00
US Mountain Standard Time|UTC-07:00 Mountain Standard Time (Mexico)|UTC-07:00 Mountain Standard Time|UTC-07:00
Central America Standard Time|UTC-06:00 Central Standard Time|UTC-06:00 Central Standard Time (Mexico)|UTC-06:00
Canada Central Standard Time|UTC-06:00 SA Pacific Standard Time|UTC-05:00 Eastern Standard Time|UTC-05:00
US Eastern Standard Time|UTC-05:00 Venezuela Standard Time|UTC-04:30 Paraguay Standard Time|UTC-04:00
Atlantic Standard Time|UTC-04:00 Central Brazilian Standard Time|UTC-04:00 SA Western Standard Time|UTC-04:00
Pacific SA Standard Time|UTC-04:00 Newfoundland Standard Time|UTC-03:30 E. South America Standard Time|UTC-03:00
Argentina Standard Time|UTC-03:00 SA Eastern Standard Time|UTC-03:00 Greenland Standard Time|UTC-03:00
Montevideo Standard Time|UTC-03:00 Bahia Standard Time|UTC-03:00 UTC-02|UTC-02:00
Mid-Atlantic Standard Time|UTC-02:00 Azores Standard Time|UTC-01:00 Cape Verde Standard Time|UTC-01:00
Morocco Standard Time|UTC Coordinated Universal Time|UTC GMT Standard Time|UTC
Greenwich Standard Time|UTC W. Europe Standard Time|UTC+01:00 Central Europe Standard Time|UTC+01:00
Romance Standard Time|UTC+01:00 Central European Standard Time|UTC+01:00 Libya Standard Time|UTC+01:00
W. Central Africa Standard Time|UTC+01:00 Namibia Standard Time|UTC+01:00 GTB Standard Time|UTC+02:00
Middle East Standard Time|UTC+02:00 Egypt Standard Time|UTC+02:00 Syria Standard Time|UTC+02:00
E. Europe Standard Time|UTC+02:00 South Africa Standard Time|UTC+02:00 FLE Standard Time|UTC+02:00
Turkey Standard Time|UTC+02:00 Jerusalem Standard Time|UTC+02:00 Jordan Standard Time|UTC+03:00
Arabic Standard Time|UTC+03:00 Kaliningrad Standard Time|UTC+03:00 Arab Standard Time|UTC+03:00
E. Africa Standard Time|UTC+03:00 Iran Standard Time|UTC+03:30</td> Arabian Standard Time|UTC+04:00
Azerbaijan Standard Time|UTC+04:00 Russian Standard Time|UTC+04:00 Mauritius Standard Time|UTC+04:00
Georgian Standard Time|UTC+04:00 Caucasus Standard Time|UTC+04:00 Afghanistan Standard Time|UTC+04:30
Pakistan Standard Time|UTC+05:00 West Asia Standard Time|UTC+05:00 India Standard Time|UTC+05:30
Sri Lanka Standard Time|UTC+05:30 Nepal Standard Time|UTC+05:45</td> Central Asia Standard Time|UTC+06:00
Bangladesh Standard Time|UTC+06:00 Ekaterinburg Standard Time|UTC+06:00 Myanmar Standard Time|UTC+06:30
SE Asia Standard Time|UTC+07:00 N. Central Asia Standard Time|UTC+07:00 China Standard Time|UTC+08:00
North Asia Standard Time|UTC+08:00 Malay Peninsula Standard Time|UTC+08:00 W. Australia Standard Time|UTC+08:00
Taipei Standard Time|UTC+08:00 Ulaanbaatar Standard Time|UTC+08:00 North Asia East Standard Time|UTC+09:00
Tokyo Standard Time|UTC+09:00 Korea Standard Time|UTC+09:00 Cen. Australia Standard Time|UTC+09:30
AUS Central Standard Time|UTC+09:30 E. Australia Standard Time|UTC+10:00 AUS Eastern Standard Time|UTC+10:00
West Pacific Standard Time|UTC+10:00 Tasmania Standard Time|UTC+10:00 Yakutsk Standard Time|UTC+10:00
Central Pacific Standard Time|UTC+11:00 Vladivostok Standard Time|UTC+11:00 New Zealand Standard Time|UTC+12:00
UTC+12|UTC+12:00 Fiji Standard Time|UTC+12:00 Magadan Standard Time|UTC+12:00

 時區表的用法

     假如我想模拟2個時區來寫測試case,那麼我們可以這樣做:

TimeZoneInfo UTC_8 = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");//-8
            TimeZoneInfo UTC_4 = TimeZoneInfo.Local;
            DateTime dt_4 = new DateTime(2013, 5, 8, 7, 0, 0); //-4
            DateTime dt_8 = TimeZoneInfo.ConvertTime(dt_4, UTC_8);
           

備注

   在這張時區表中,用符号'|'對時區的标準名稱和時區對應UTC時間的偏移量值進行了分割,這樣做是為了友善檢索。在實際使用過程中,我們僅僅需要時區的标準名稱(可以參考本文的小例子)。

繼續閱讀