你好,我是A哥(YourBatman)。java
如你所知,現行的世界標準時間是UTC世界協調時,時區已不直接參與時間計算。可是呢,城市名稱or時區是人們所能記憶和容易溝通的名詞,所以咱們迫切須要一個對照表,能讓只知道城市名或者ID的狀況下就迅速知道它的偏移量,從而計算出當地的本地時間。程序員
本文做爲時區、偏移量知識點的補充,總體內容相對輕鬆,但依舊以實用爲主,我盡力用本系列助你解決Java日期時間處理的全部痛點,對,是全部。往後應對日期/時間處理的任何問題,只須要看本系列就夠了。bash
咱們在去住酒店的時候,能夠看到酒店大廳裏的前臺牆上通常會掛有好幾個時鐘,分別展現北京時間、紐約時間、倫敦時間、巴黎時間等等世界主要城市時間。架構
前面我連續用了兩篇文章從概念介紹到Java實戰,很全面的介紹了日期時間中GMT/UTC時間、夏令時、時間戳等等Java是如何處理的。從後臺數據上看,這兩篇文章的收藏量明顯高於以前的絕大多數文章,正所謂數據不會騙人,說明日期時間的處理上確實有很同窗是有痛點或者盲點的。ide
前兩篇文章篇幅較長,適合收藏備用,可戳這裏直達:全網最全!完全弄透Java處理GMT/UTC日期時間網站
要想知道某個地方(城市)的本地時間,就須要先肯定該城市的偏移量,而後以UTC爲基準加上偏移量計算出其本地時間。ui
說明:本地時間的最小區域單位是城市3d
那麼問題來了,世界上的「城市」那麼多,如何知道具體某個城市它的偏移量是多少,從而計算出其本地時間呢?rest
下面給你介紹兩種方式,任君選擇。日誌
在前面文章我給你們推薦過一個網站,上面列出了全球主要國家/城市ID對應的偏移量數據:
國家/城市ID與偏移量的對應關係,所有內容請參考網址(直接訪問,無需***):https://www.timeanddate.com/time/zones
用這種方式的優勢是方便快捷,但缺點也很是明顯:
上述第3點是經過網站查詢的致命問題,而且這一點還很容易被使用者忽略從而產生錯誤。做爲有衆多技法的程序員,固然但願可以「解決」此問題嘍,那就看第二種方式吧。
前面文章介紹過Java提供了相關API來獲取到全量的(已收錄的)ZoneId:
ZoneId[] zoneIds = ZoneId.getAvailableZoneIds();
基於它,再通過一些計算就能獲得ZoneId對應的偏移量,徹底實現自主化,再也不「求人」。
下面我先列出世界主要城市時區ID對應的UTC偏移量(文末附全量表格):
時區ID | UTC偏移 |
---|---|
Asia/Shanghai | +08:00 |
Asia/Chongqing | +08:00 |
America/New_York | -05:00 |
Europe/London | Z |
Europe/Paris | +01:00 |
Europe/Moscow | +03:00 |
Asia/Tokyo | +09:00 |
Asia/Dubai | +04:00 |
Asia/Seoul | +09:00 |
Asia/Bangkok | +07:00 |
Asia/Jakarta | +07:00 |
特別說明:本表格生成於北京時間2021-01-19 08:00:00,因爲各地夏令時的存在,不一樣時間生成的表格UTC偏移值不盡相同
看名稱知道這些都是哪些城市了吧?注意:沒有Asia/Beijing哦,絕大部分狀況下我國使用的都是Asia/Shanghai這個ID。
看英國倫敦(Europe/London)它的偏移量是Z,表明+00:00偏移量,屬於0時區、0偏移量地區,畢竟格林威治在那,它是世界的「時間中心」。
值得特別注意:該表格必須綁定上生成時間纔有意義,不然由於一些時間規則(如夏令時)的存在會致使不一樣時間生成的內容不同。好比看我給你模擬的這個例子打印日誌:
public static void main(String[] argv) { LocalDateTime bjTime = LocalDateTime.now(); Map<String, ZoneOffset> allZoneIdOffSetMap = allZoneIdOffSet2MapByBjTime(bjTime); System.out.println("北京時間" + bjTime + ",美國紐約的偏移量:" + allZoneIdOffSetMap.get("America/New_York")); // 讓當前北京時間深處紐約2021年夏令時時間區間內 bjTime = LocalDateTime.of(2021, 05, 05, 18, 01, 01); allZoneIdOffSetMap = allZoneIdOffSet2MapByBjTime(bjTime); System.out.println("北京時間" + bjTime + ".000,美國紐約(夏令時期間)的偏移量:" + allZoneIdOffSetMap.get("America/New_York")); }
運行程序,輸出:
北京時間2021-01-19T08:25:13.162,美國紐約的偏移量:-05:00 北京時間2021-05-05T18:01:01.000,美國紐約(夏令時期間)的偏移量:-04:00
因而可知,紐約這個城市由於有夏令時的存在,所以在不一樣的時間段它的偏移量是不一樣的。備註:紐約2021年夏令時狀況以下表:
固然嘍,這個例子的最重點方法是allZoneIdOffSet2MapByBjTime()
是如何計算的?爲了不大量貼代碼影響閱讀,我把它的源碼放到了後臺。對此部分計算邏輯感興趣的同窗可在公號後臺回覆「時區」二字來獲取源碼內容。
時區ID | UTC偏移 |
---|---|
Asia/Aden | +03:00 |
America/Cuiaba | -04:00 |
Etc/GMT+9 | -09:00 |
Etc/GMT+8 | -08:00 |
Africa/Nairobi | +03:00 |
America/Marigot | -04:00 |
Asia/Aqtau | +05:00 |
Pacific/Kwajalein | +12:00 |
America/El_Salvador | -06:00 |
Asia/Pontianak | +07:00 |
Africa/Cairo | +02:00 |
Pacific/Pago_Pago | -11:00 |
Africa/Mbabane | +02:00 |
Asia/Kuching | +08:00 |
Pacific/Honolulu | -10:00 |
Pacific/Rarotonga | -10:00 |
America/Guatemala | -06:00 |
Australia/Hobart | +11:00 |
Europe/London | Z |
America/Belize | -06:00 |
America/Panama | -05:00 |
Asia/Chungking | +08:00 |
America/Managua | -06:00 |
America/Indiana/Petersburg | -05:00 |
Asia/Yerevan | +04:00 |
Europe/Brussels | +01:00 |
GMT | Z |
Europe/Warsaw | +01:00 |
America/Chicago | -06:00 |
Asia/Kashgar | +06:00 |
Chile/Continental | -03:00 |
Pacific/Yap | +10:00 |
CET | +01:00 |
Etc/GMT-1 | +01:00 |
Etc/GMT-0 | Z |
Europe/Jersey | Z |
America/Tegucigalpa | -06:00 |
Etc/GMT-5 | +05:00 |
Europe/Istanbul | +03:00 |
America/Eirunepe | -05:00 |
Etc/GMT-4 | +04:00 |
America/Miquelon | -03:00 |
Etc/GMT-3 | +03:00 |
Europe/Luxembourg | +01:00 |
Etc/GMT-2 | +02:00 |
Etc/GMT-9 | +09:00 |
America/Argentina/Catamarca | -03:00 |
Etc/GMT-8 | +08:00 |
Etc/GMT-7 | +07:00 |
Etc/GMT-6 | +06:00 |
Europe/Zaporozhye | +02:00 |
Canada/Yukon | -08:00 |
Canada/Atlantic | -04:00 |
Atlantic/St_Helena | Z |
Australia/Tasmania | +11:00 |
Libya | +02:00 |
Europe/Guernsey | Z |
America/Grand_Turk | -05:00 |
US/Pacific-New | -08:00 |
Asia/Samarkand | +05:00 |
America/Argentina/Cordoba | -03:00 |
Asia/Phnom_Penh | +07:00 |
Africa/Kigali | +02:00 |
Asia/Almaty | +06:00 |
US/Alaska | -09:00 |
Asia/Dubai | +04:00 |
Europe/Isle_of_Man | Z |
America/Araguaina | -03:00 |
Cuba | -05:00 |
Asia/Novosibirsk | +07:00 |
America/Argentina/Salta | -03:00 |
Etc/GMT+3 | -03:00 |
Africa/Tunis | +01:00 |
Etc/GMT+2 | -02:00 |
Etc/GMT+1 | -01:00 |
Pacific/Fakaofo | +13:00 |
Africa/Tripoli | +02:00 |
Etc/GMT+0 | Z |
Israel | +02:00 |
Africa/Banjul | Z |
Etc/GMT+7 | -07:00 |
Indian/Comoro | +03:00 |
Etc/GMT+6 | -06:00 |
Etc/GMT+5 | -05:00 |
Etc/GMT+4 | -04:00 |
Pacific/Port_Moresby | +10:00 |
US/Arizona | -07:00 |
Antarctica/Syowa | +03:00 |
Indian/Reunion | +04:00 |
Pacific/Palau | +09:00 |
Europe/Kaliningrad | +02:00 |
America/Montevideo | -03:00 |
Africa/Windhoek | +02:00 |
Asia/Karachi | +05:00 |
Africa/Mogadishu | +03:00 |
Australia/Perth | +08:00 |
Brazil/East | -03:00 |
Etc/GMT | Z |
Asia/Chita | +09:00 |
Pacific/Easter | -05:00 |
Antarctica/Davis | +07:00 |
Antarctica/McMurdo | +13:00 |
Asia/Macao | +08:00 |
America/Manaus | -04:00 |
Africa/Freetown | Z |
Europe/Bucharest | +02:00 |
Asia/Tomsk | +07:00 |
America/Argentina/Mendoza | -03:00 |
Asia/Macau | +08:00 |
Europe/Malta | +01:00 |
Mexico/BajaSur | -07:00 |
Pacific/Tahiti | -10:00 |
Africa/Asmera | +03:00 |
Europe/Busingen | +01:00 |
America/Argentina/Rio_Gallegos | -03:00 |
Africa/Malabo | +01:00 |
Europe/Skopje | +01:00 |
America/Catamarca | -03:00 |
America/Godthab | -03:00 |
Europe/Sarajevo | +01:00 |
Australia/ACT | +11:00 |
GB-Eire | Z |
Africa/Lagos | +01:00 |
America/Cordoba | -03:00 |
Europe/Rome | +01:00 |
Asia/Dacca | +06:00 |
Indian/Mauritius | +04:00 |
Pacific/Samoa | -11:00 |
America/Regina | -06:00 |
America/Fort_Wayne | -05:00 |
America/Dawson_Creek | -07:00 |
Africa/Algiers | +01:00 |
Europe/Mariehamn | +02:00 |
America/St_Johns | -03:30 |
America/St_Thomas | -04:00 |
Europe/Zurich | +01:00 |
America/Anguilla | -04:00 |
Asia/Dili | +09:00 |
America/Denver | -07:00 |
Africa/Bamako | Z |
Europe/Saratov | +04:00 |
GB | Z |
Mexico/General | -06:00 |
Pacific/Wallis | +12:00 |
Europe/Gibraltar | +01:00 |
Africa/Conakry | Z |
Africa/Lubumbashi | +02:00 |
Asia/Istanbul | +03:00 |
America/Havana | -05:00 |
NZ-CHAT | +13:45 |
Asia/Choibalsan | +08:00 |
America/Porto_Acre | -05:00 |
Asia/Omsk | +06:00 |
Europe/Vaduz | +01:00 |
US/Michigan | -05:00 |
Asia/Dhaka | +06:00 |
America/Barbados | -04:00 |
Europe/Tiraspol | +02:00 |
Atlantic/Cape_Verde | -01:00 |
Asia/Yekaterinburg | +05:00 |
America/Louisville | -05:00 |
Pacific/Johnston | -10:00 |
Pacific/Chatham | +13:45 |
Europe/Ljubljana | +01:00 |
America/Sao_Paulo | -03:00 |
Asia/Jayapura | +09:00 |
America/Curacao | -04:00 |
Asia/Dushanbe | +05:00 |
America/Guyana | -04:00 |
America/Guayaquil | -05:00 |
America/Martinique | -04:00 |
Portugal | Z |
Europe/Berlin | +01:00 |
Europe/Moscow | +03:00 |
Europe/Chisinau | +02:00 |
America/Puerto_Rico | -04:00 |
America/Rankin_Inlet | -06:00 |
Pacific/Ponape | +11:00 |
Europe/Stockholm | +01:00 |
Europe/Budapest | +01:00 |
America/Argentina/Jujuy | -03:00 |
Australia/Eucla | +08:45 |
Asia/Shanghai | +08:00 |
Universal | Z |
Europe/Zagreb | +01:00 |
America/Port_of_Spain | -04:00 |
Europe/Helsinki | +02:00 |
Asia/Beirut | +02:00 |
Asia/Tel_Aviv | +02:00 |
Pacific/Bougainville | +11:00 |
US/Central | -06:00 |
Africa/Sao_Tome | Z |
Indian/Chagos | +06:00 |
America/Cayenne | -03:00 |
Asia/Yakutsk | +09:00 |
Pacific/Galapagos | -06:00 |
Australia/North | +09:30 |
Europe/Paris | +01:00 |
Africa/Ndjamena | +01:00 |
Pacific/Fiji | +12:00 |
America/Rainy_River | -06:00 |
Indian/Maldives | +05:00 |
Australia/Yancowinna | +10:30 |
SystemV/AST4 | -04:00 |
Asia/Oral | +05:00 |
America/Yellowknife | -07:00 |
Pacific/Enderbury | +13:00 |
America/Juneau | -09:00 |
Australia/Victoria | +11:00 |
America/Indiana/Vevay | -05:00 |
Asia/Tashkent | +05:00 |
Asia/Jakarta | +07:00 |
Africa/Ceuta | +01:00 |
Asia/Barnaul | +07:00 |
America/Recife | -03:00 |
America/Buenos_Aires | -03:00 |
America/Noronha | -02:00 |
America/Swift_Current | -06:00 |
Australia/Adelaide | +10:30 |
America/Metlakatla | -09:00 |
Africa/Djibouti | +03:00 |
America/Paramaribo | -03:00 |
Asia/Qostanay | +06:00 |
Europe/Simferopol | +03:00 |
Europe/Sofia | +02:00 |
Africa/Nouakchott | Z |
Europe/Prague | +01:00 |
America/Indiana/Vincennes | -05:00 |
Antarctica/Mawson | +05:00 |
America/Kralendijk | -04:00 |
Antarctica/Troll | Z |
Europe/Samara | +04:00 |
Indian/Christmas | +07:00 |
America/Antigua | -04:00 |
Pacific/Gambier | -09:00 |
America/Indianapolis | -05:00 |
America/Inuvik | -07:00 |
America/Iqaluit | -05:00 |
Pacific/Funafuti | +12:00 |
UTC | Z |
Antarctica/Macquarie | +11:00 |
Canada/Pacific | -08:00 |
America/Moncton | -04:00 |
Africa/Gaborone | +02:00 |
Pacific/Chuuk | +10:00 |
Asia/Pyongyang | +09:00 |
America/St_Vincent | -04:00 |
Asia/Gaza | +02:00 |
Etc/Universal | Z |
PST8PDT | -08:00 |
Atlantic/Faeroe | Z |
Asia/Qyzylorda | +05:00 |
Canada/Newfoundland | -03:30 |
America/Kentucky/Louisville | -05:00 |
America/Yakutat | -09:00 |
Asia/Ho_Chi_Minh | +07:00 |
Antarctica/Casey | +08:00 |
Europe/Copenhagen | +01:00 |
Africa/Asmara | +03:00 |
Atlantic/Azores | -01:00 |
Europe/Vienna | +01:00 |
ROK | +09:00 |
Pacific/Pitcairn | -08:00 |
America/Mazatlan | -07:00 |
Australia/Queensland | +10:00 |
Pacific/Nauru | +12:00 |
Europe/Tirane | +01:00 |
Asia/Kolkata | +05:30 |
SystemV/MST7 | -07:00 |
Australia/Canberra | +11:00 |
MET | +01:00 |
Australia/Broken_Hill | +10:30 |
Europe/Riga | +02:00 |
America/Dominica | -04:00 |
Africa/Abidjan | Z |
America/Mendoza | -03:00 |
America/Santarem | -03:00 |
Kwajalein | +12:00 |
America/Asuncion | -03:00 |
Asia/Ulan_Bator | +08:00 |
NZ | +13:00 |
America/Boise | -07:00 |
Australia/Currie | +11:00 |
EST5EDT | -05:00 |
Pacific/Guam | +10:00 |
Pacific/Wake | +12:00 |
Atlantic/Bermuda | -04:00 |
America/Costa_Rica | -06:00 |
America/Dawson | -08:00 |
Asia/Chongqing | +08:00 |
Eire | Z |
Europe/Amsterdam | +01:00 |
America/Indiana/Knox | -06:00 |
America/North_Dakota/Beulah | -06:00 |
Africa/Accra | Z |
Atlantic/Faroe | Z |
Mexico/BajaNorte | -08:00 |
America/Maceio | -03:00 |
Etc/UCT | Z |
Pacific/Apia | +14:00 |
GMT0 | Z |
America/Atka | -10:00 |
Pacific/Niue | -11:00 |
Australia/Lord_Howe | +11:00 |
Europe/Dublin | Z |
Pacific/Truk | +10:00 |
MST7MDT | -07:00 |
America/Monterrey | -06:00 |
America/Nassau | -05:00 |
America/Jamaica | -05:00 |
Asia/Bishkek | +06:00 |
America/Atikokan | -05:00 |
Atlantic/Stanley | -03:00 |
Australia/NSW | +11:00 |
US/Hawaii | -10:00 |
SystemV/CST6 | -06:00 |
Indian/Mahe | +04:00 |
Asia/Aqtobe | +05:00 |
America/Sitka | -09:00 |
Asia/Vladivostok | +10:00 |
Africa/Libreville | +01:00 |
Africa/Maputo | +02:00 |
Zulu | Z |
America/Kentucky/Monticello | -05:00 |
Africa/El_Aaiun | +01:00 |
Africa/Ouagadougou | Z |
America/Coral_Harbour | -05:00 |
Pacific/Marquesas | -09:30 |
Brazil/West | -04:00 |
America/Aruba | -04:00 |
America/North_Dakota/Center | -06:00 |
America/Cayman | -05:00 |
Asia/Ulaanbaatar | +08:00 |
Asia/Baghdad | +03:00 |
Europe/San_Marino | +01:00 |
America/Indiana/Tell_City | -06:00 |
America/Tijuana | -08:00 |
Pacific/Saipan | +10:00 |
SystemV/YST9 | -09:00 |
Africa/Douala | +01:00 |
America/Chihuahua | -07:00 |
America/Ojinaga | -07:00 |
Asia/Hovd | +07:00 |
America/Anchorage | -09:00 |
Chile/EasterIsland | -05:00 |
America/Halifax | -04:00 |
Antarctica/Rothera | -03:00 |
America/Indiana/Indianapolis | -05:00 |
US/Mountain | -07:00 |
Asia/Damascus | +02:00 |
America/Argentina/San_Luis | -03:00 |
America/Santiago | -03:00 |
Asia/Baku | +04:00 |
America/Argentina/Ushuaia | -03:00 |
Atlantic/Reykjavik | Z |
Africa/Brazzaville | +01:00 |
Africa/Porto-Novo | +01:00 |
America/La_Paz | -04:00 |
Antarctica/DumontDUrville | +10:00 |
Asia/Taipei | +08:00 |
Antarctica/South_Pole | +13:00 |
Asia/Manila | +08:00 |
Asia/Bangkok | +07:00 |
Africa/Dar_es_Salaam | +03:00 |
Poland | +01:00 |
Atlantic/Madeira | Z |
Antarctica/Palmer | -03:00 |
America/Thunder_Bay | -05:00 |
Africa/Addis_Ababa | +03:00 |
Asia/Yangon | +06:30 |
Europe/Uzhgorod | +02:00 |
Brazil/DeNoronha | -02:00 |
Asia/Ashkhabad | +05:00 |
Etc/Zulu | Z |
America/Indiana/Marengo | -05:00 |
America/Creston | -07:00 |
America/Punta_Arenas | -03:00 |
America/Mexico_City | -06:00 |
Antarctica/Vostok | +06:00 |
Asia/Jerusalem | +02:00 |
Europe/Andorra | +01:00 |
US/Samoa | -11:00 |
PRC | +08:00 |
Asia/Vientiane | +07:00 |
Pacific/Kiritimati | +14:00 |
America/Matamoros | -06:00 |
America/Blanc-Sablon | -04:00 |
Asia/Riyadh | +03:00 |
Iceland | Z |
Pacific/Pohnpei | +11:00 |
Asia/Ujung_Pandang | +08:00 |
Atlantic/South_Georgia | -02:00 |
Europe/Lisbon | Z |
Asia/Harbin | +08:00 |
Europe/Oslo | +01:00 |
Asia/Novokuznetsk | +07:00 |
CST6CDT | -06:00 |
Atlantic/Canary | Z |
America/Knox_IN | -06:00 |
Asia/Kuwait | +03:00 |
SystemV/HST10 | -10:00 |
Pacific/Efate | +11:00 |
Africa/Lome | Z |
America/Bogota | -05:00 |
America/Menominee | -06:00 |
America/Adak | -10:00 |
Pacific/Norfolk | +12:00 |
Europe/Kirov | +03:00 |
America/Resolute | -06:00 |
Pacific/Tarawa | +12:00 |
Africa/Kampala | +03:00 |
Asia/Krasnoyarsk | +07:00 |
Greenwich | Z |
SystemV/EST5 | -05:00 |
America/Edmonton | -07:00 |
Europe/Podgorica | +01:00 |
Australia/South | +10:30 |
Canada/Central | -06:00 |
Africa/Bujumbura | +02:00 |
America/Santo_Domingo | -04:00 |
US/Eastern | -05:00 |
Europe/Minsk | +03:00 |
Pacific/Auckland | +13:00 |
Africa/Casablanca | +01:00 |
America/Glace_Bay | -04:00 |
Canada/Eastern | -05:00 |
Asia/Qatar | +03:00 |
Europe/Kiev | +02:00 |
Singapore | +08:00 |
Asia/Magadan | +11:00 |
SystemV/PST8 | -08:00 |
America/Port-au-Prince | -05:00 |
Europe/Belfast | Z |
America/St_Barthelemy | -04:00 |
Asia/Ashgabat | +05:00 |
Africa/Luanda | +01:00 |
America/Nipigon | -05:00 |
Atlantic/Jan_Mayen | +01:00 |
Brazil/Acre | -05:00 |
Asia/Muscat | +04:00 |
Asia/Bahrain | +03:00 |
Europe/Vilnius | +02:00 |
America/Fortaleza | -03:00 |
Etc/GMT0 | Z |
US/East-Indiana | -05:00 |
America/Hermosillo | -07:00 |
America/Cancun | -05:00 |
Africa/Maseru | +02:00 |
Pacific/Kosrae | +11:00 |
Africa/Kinshasa | +01:00 |
Asia/Kathmandu | +05:45 |
Asia/Seoul | +09:00 |
Australia/Sydney | +11:00 |
America/Lima | -05:00 |
Australia/LHI | +11:00 |
America/St_Lucia | -04:00 |
Europe/Madrid | +01:00 |
America/Bahia_Banderas | -06:00 |
America/Montserrat | -04:00 |
Asia/Brunei | +08:00 |
America/Santa_Isabel | -08:00 |
Canada/Mountain | -07:00 |
America/Cambridge_Bay | -07:00 |
Asia/Colombo | +05:30 |
Australia/West | +08:00 |
Indian/Antananarivo | +03:00 |
Australia/Brisbane | +10:00 |
Indian/Mayotte | +03:00 |
US/Indiana-Starke | -06:00 |
Asia/Urumqi | +06:00 |
US/Aleutian | -10:00 |
Europe/Volgograd | +04:00 |
America/Lower_Princes | -04:00 |
America/Vancouver | -08:00 |
Africa/Blantyre | +02:00 |
America/Rio_Branco | -05:00 |
America/Danmarkshavn | Z |
America/Detroit | -05:00 |
America/Thule | -04:00 |
Africa/Lusaka | +02:00 |
Asia/Hong_Kong | +08:00 |
Iran | +03:30 |
America/Argentina/La_Rioja | -03:00 |
Africa/Dakar | Z |
SystemV/CST6CDT | -06:00 |
America/Tortola | -04:00 |
America/Porto_Velho | -04:00 |
Asia/Sakhalin | +11:00 |
Etc/GMT+10 | -10:00 |
America/Scoresbysund | -01:00 |
Asia/Kamchatka | +12:00 |
Asia/Thimbu | +06:00 |
Africa/Harare | +02:00 |
Etc/GMT+12 | -12:00 |
Etc/GMT+11 | -11:00 |
Navajo | -07:00 |
America/Nome | -09:00 |
Europe/Tallinn | +02:00 |
Turkey | +03:00 |
Africa/Khartoum | +02:00 |
Africa/Johannesburg | +02:00 |
Africa/Bangui | +01:00 |
Europe/Belgrade | +01:00 |
Jamaica | -05:00 |
Africa/Bissau | Z |
Asia/Tehran | +03:30 |
WET | Z |
Europe/Astrakhan | +04:00 |
Africa/Juba | +03:00 |
America/Campo_Grande | -04:00 |
America/Belem | -03:00 |
Etc/Greenwich | Z |
Asia/Saigon | +07:00 |
America/Ensenada | -08:00 |
Pacific/Midway | -11:00 |
America/Jujuy | -03:00 |
Africa/Timbuktu | Z |
America/Bahia | -03:00 |
America/Goose_Bay | -04:00 |
America/Virgin | -04:00 |
America/Pangnirtung | -05:00 |
Asia/Katmandu | +05:45 |
America/Phoenix | -07:00 |
Africa/Niamey | +01:00 |
America/Whitehorse | -08:00 |
Pacific/Noumea | +11:00 |
Asia/Tbilisi | +04:00 |
America/Montreal | -05:00 |
Asia/Makassar | +08:00 |
America/Argentina/San_Juan | -03:00 |
Hongkong | +08:00 |
UCT | Z |
Asia/Nicosia | +02:00 |
America/Indiana/Winamac | -05:00 |
SystemV/MST7MDT | -07:00 |
America/Argentina/ComodRivadavia | -03:00 |
America/Boa_Vista | -04:00 |
America/Grenada | -04:00 |
Asia/Atyrau | +05:00 |
Australia/Darwin | +09:30 |
Asia/Khandyga | +09:00 |
Asia/Kuala_Lumpur | +08:00 |
Asia/Famagusta | +02:00 |
Asia/Thimphu | +06:00 |
Asia/Rangoon | +06:30 |
Europe/Bratislava | +01:00 |
Asia/Calcutta | +05:30 |
America/Argentina/Tucuman | -03:00 |
Asia/Kabul | +04:30 |
Indian/Cocos | +06:30 |
Japan | +09:00 |
Pacific/Tongatapu | +13:00 |
America/New_York | -05:00 |
Etc/GMT-12 | +12:00 |
Etc/GMT-11 | +11:00 |
Etc/GMT-10 | +10:00 |
SystemV/YST9YDT | -09:00 |
Europe/Ulyanovsk | +04:00 |
Etc/GMT-14 | +14:00 |
Etc/GMT-13 | +13:00 |
W-SU | +03:00 |
America/Merida | -06:00 |
EET | +02:00 |
America/Rosario | -03:00 |
Canada/Saskatchewan | -06:00 |
America/St_Kitts | -04:00 |
Arctic/Longyearbyen | +01:00 |
America/Fort_Nelson | -07:00 |
America/Caracas | -04:00 |
America/Guadeloupe | -04:00 |
Asia/Hebron | +02:00 |
Indian/Kerguelen | +05:00 |
SystemV/PST8PDT | -08:00 |
Africa/Monrovia | Z |
Asia/Ust-Nera | +10:00 |
Egypt | +02:00 |
Asia/Srednekolymsk | +11:00 |
America/North_Dakota/New_Salem | -06:00 |
Asia/Anadyr | +12:00 |
Australia/Melbourne | +11:00 |
Asia/Irkutsk | +08:00 |
America/Shiprock | -07:00 |
America/Winnipeg | -06:00 |
Europe/Vatican | +01:00 |
Asia/Amman | +02:00 |
Etc/UTC | Z |
SystemV/AST4ADT | -04:00 |
Asia/Tokyo | +09:00 |
America/Toronto | -05:00 |
Asia/Singapore | +08:00 |
Australia/Lindeman | +10:00 |
America/Los_Angeles | -08:00 |
SystemV/EST5EDT | -05:00 |
Pacific/Majuro | +12:00 |
America/Argentina/Buenos_Aires | -03:00 |
Europe/Nicosia | +02:00 |
Pacific/Guadalcanal | +11:00 |
Europe/Athens | +02:00 |
US/Pacific | -08:00 |
Europe/Monaco | +01:00 |
特別說明:本表格生成於北京時間2021-01-19 08:00:00,因爲各地夏令時的存在,不一樣時間生成的表格UTC偏移值不盡相同
有了這個表格,本文又很是值得收藏嘍。有須要的時候直接拿出來ctrl + f查一下便可,不用再進入xxx網站啦。
固然嘍,我的建議仍是掌握程序的計算邏輯更穩妥些,能夠「動態的」獲取100%正確的偏移量,所以有須要此計算邏輯的同窗直接在公號後臺回覆「時區」二字便可獲取源碼內容。
本文圍繞時區偏移量,經過自寫代碼的方式輸出全部城市時區ID對應的偏移量值,進一步加深對時區和偏移量,以及夏令時的瞭解。
這部份內容是時間處理的難點,更是重點,每每程序bug就發生在這些地方(好比我在此趟了一坑),但願能引發各位重視。
下篇文章將繼續補充介紹和實戰場景很是貼近:LocalDateTime、OffsetDateTime、ZonedDateTime跨時區互轉,保持關注。
看完了不必定懂,看懂了不必定會。來,文末3個思考題幫你覆盤:
GMT UTC CST ISO 夏令時 時間戳,都是些什麼鬼?
分享、成長,拒絕淺藏輒止。關注【BAT的烏托邦】回覆關鍵字專欄有Spring技術棧、中間件等小而美的純原創專欄。本文已被 https://www.yourbatman.cn 收錄。
本文所屬專欄:JDK日期時間,公號後臺回覆專欄名便可獲取所有內容。
A哥(YourBatman):Spring Framework/Boot開源貢獻者,Java架構師。很是注重基本功修養,相信底層基礎決定上層建築,堅實基礎才能煥發程序員更強生命力。文章特色爲以小而美專欄形式重構知識體系,抽絲剝繭,致力於作人人能看懂的最好的專欄系列。可加我好友(fsx1056342982)共勉哦!