全球城市ZoneId和UTC时间偏移量的最全对照表

您所在的位置:网站首页 松原是哪个地区的城市 全球城市ZoneId和UTC时间偏移量的最全对照表

全球城市ZoneId和UTC时间偏移量的最全对照表

2024-06-18 11:18| 来源: 网络整理| 查看: 265

前言

你好,我是A哥(YourBatman)。

如你所知,现行的世界标准时间是UTC世界协调时,时区已不直接参与时间计算。但是呢,城市名称or时区是人们所能记忆和容易沟通的名词,因此我们迫切需要一个对照表,能让只知道城市名或者ID的情况下就迅速知道它的偏移量,从而计算出当地的本地时间。

本文作为时区、偏移量知识点的补充,整体内容相对轻松,但依旧以实用为主,我尽力用本系列助你解决Java日期时间处理的所有痛点,对,是所有。日后应对日期/时间处理的任何问题,只需要看本系列就够了。

本文提纲

版本约定 JDK:8 正文

我们在去住酒店的时候,可以看到酒店大厅里的前台墙上一般会挂有好几个时钟,分别展示北京时间、纽约时间、伦敦时间、巴黎时间等等世界主要城市时间。

前面我连续用了两篇文章从概念介绍到Java实战,很全面的介绍了日期时间中GMT/UTC时间、夏令时、时间戳等等Java是如何处理的。从后台数据上看,这两篇文章的收藏量明显高于之前的绝大多数文章,正所谓数据不会骗人,说明日期时间的处理上确实有很同学是有痛点或者盲点的。

前两篇文章篇幅较长,适合收藏备用,可戳这里直达:全网最全!彻底弄透Java处理GMT/UTC日期时间

要想知道某个地方(城市)的本地时间,就需要先确定该城市的偏移量,然后以UTC为基准加上偏移量计算出其本地时间。

说明:本地时间的最小区域单位是城市

那么问题来了,世界上的“城市”那么多,如何知道具体某个城市它的偏移量是多少,从而计算出其本地时间呢?

城市ZoneId - UTC偏移量

下面给你介绍两种方式,任君选择。

方式一:第三方站点

在前面文章我给大家推荐过一个网站,上面列出了全球主要国家/城市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 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个思考题帮你复盘:

偏移量Z代表什么含义? ZoneId和ZoneOffset是如何建立对应关系的? 若某个城市不在ZoneId列表里面,想要获取其UTC偏移量该怎么破? 推荐阅读

GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?

全网最全!彻底弄透Java处理GMT/UTC日期时间

关注我

分享、成长,拒绝浅藏辄止。关注【BAT的乌托邦】回复关键字专栏有Spring技术栈、中间件等小而美的纯原创专栏。本文已被 https://www.yourbatman.cn 收录。

本文所属专栏:JDK日期时间,公号后台回复专栏名即可获取全部内容。

A哥(YourBatman):Spring Framework/Boot开源贡献者,Java架构师。非常注重基本功修养,相信底层基础决定上层建筑,坚实基础才能焕发程序员更强生命力。文章特点为以小而美专栏形式重构知识体系,抽丝剥茧,致力于做人人能看懂的最好的专栏系列。可加我好友(fsx1056342982)共勉哦!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3