在国际化的项目中,处理时间时经常会遇到夏令时(BST,British Summer Time)问题,发明夏令时(以及冬令时)主要是为了省电。
冷知识:中国历史上也曾经采用过(1986-1991)夏令时,后来因为各种原因,最终取消了这一制度(参见:https://baijiahao.baidu.com/s?id=1700703328355099602&wfr=spider&for=pc)
但欧美国家仍在广泛使用,以2022年为例:根据网上找到的资料
http://www.timeofdate.com/city/United%20Kingdom/London/timezone/change
伦敦 在2022-03-27 ~ 2002-10-30 为夏令时期间。
java中如何知道某个地区,在某个时间点是否处于夏令时呢?
/**
* 夏令时测试(by菩提树下的杨过)
*/
@Test
public void testTimeZone() {
LocalTime time = LocalTime.of(10, 20);
ZoneId zoneId = ZoneId.of("Europe/London");
// A summer date-time
ZonedDateTime zdtSummer = ZonedDateTime.of(LocalDate.of(2022, 10, 15), time, zoneId);
System.out.println(zdtSummer);
// A winter date-time
ZonedDateTime zdtWinter = ZonedDateTime.of(LocalDate.of(2022, 11, 15), time, zoneId);
System.out.println(zdtWinter);
}
输出:
2022-10-15T10:20+01:00[Europe/London]
2022-11-15T10:20Z [Europe/London]
即:2022-10-15 10:20:00 这个时间,对于London来说,时区的offset为+1,即向前拨快了1小时(夏令时)
而2022-11-15 10:20:00 这个时间,London的时区offset为Z(即Zero 零),即没有向前调整(不是夏令时)
通过这个测试,可以看到JDK里已经自带了夏令时的判断。
那么问题来了,ZoneId在构建时,要传入“Europe/London”这样的地区标识,JDK里支持多少种这类地区标识呢?
/**
* 输出全球所有时区(by菩提树下的杨过)
*/
@Test
public void getAvailableZoneIds() {
Calendar c = Calendar.getInstance();
System.out.println("year:" + c.get(Calendar.YEAR) + ",month:" + (c.get(Calendar.MONTH) + 1) + ",day:" + c.get(Calendar.DAY_OF_MONTH) + "\n");
TreeMap<String, String> result = new TreeMap<>();
//遍历所有ZoneId,并以今天9点时刻做为依赖,打印出每个ZoneId对应的时区
for (String strZoneId : ZoneId.getAvailableZoneIds()) {
LocalTime time = LocalTime.of(9, 0);
ZoneId zoneId = ZoneId.of(strZoneId);
ZonedDateTime zonedDateTime = ZonedDateTime.of(LocalDate.of(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, c.get(Calendar.DAY_OF_MONTH)), time, zoneId);
String offSet = zonedDateTime.getOffset().toString().split(":")[0];
if ("Z".equalsIgnoreCase(offSet)) {
offSet = "+0";
} else {
int temp = Integer.valueOf(offSet);
if (temp > 0) {
offSet = "+" + temp;
} else {
offSet = "" + temp;
}
}
result.put(strZoneId, "GMT" + offSet);
}
for (Map.Entry<String, String> entry : result.entrySet()) {
System.out.println(entry.getValue() + "\t" + entry.getKey());
}
}
输出:
year:2022,month:11,day:13
GMT+0 Africa/Abidjan
GMT+0 Africa/Accra
GMT+3 Africa/Addis_Ababa
GMT+1 Africa/Algiers
GMT+3 Africa/Asmara
GMT+3 Africa/Asmera
GMT+0 Africa/Bamako
GMT+1 Africa/Bangui
GMT+0 Africa/Banjul
GMT+0 Africa/Bissau
GMT+2 Africa/Blantyre
GMT+1 Africa/Brazzaville
GMT+2 Africa/Bujumbura
GMT+2 Africa/Cairo
GMT+1 Africa/Casablanca
GMT+1 Africa/Ceuta
GMT+0 Africa/Conakry
GMT+0 Africa/Dakar
GMT+3 Africa/Dar_es_Salaam
GMT+3 Africa/Djibouti
GMT+1 Africa/Douala
GMT+1 Africa/El_Aaiun
GMT+0 Africa/Freetown
GMT+2 Africa/Gaborone
GMT+2 Africa/Harare
GMT+2 Africa/Johannesburg
GMT+3 Africa/Juba
GMT+3 Africa/Kampala
GMT+2 Africa/Khartoum
GMT+2 Africa/Kigali
GMT+1 Africa/Kinshasa
GMT+1 Africa/Lagos
GMT+1 Africa/Libreville
GMT+0 Africa/Lome
GMT+1 Africa/Luanda
GMT+2 Africa/Lubumbashi
GMT+2 Africa/Lusaka
GMT+1 Africa/Malabo
GMT+2 Africa/Maputo
GMT+2 Africa/Maseru
GMT+2 Africa/Mbabane
GMT+3 Africa/Mogadishu
GMT+0 Africa/Monrovia
GMT+3 Africa/Nairobi
GMT+1 Africa/Ndjamena
GMT+1 Africa/Niamey
GMT+0 Africa/Nouakchott
GMT+0 Africa/Ouagadougou
GMT+1 Africa/Porto-Novo
GMT+1 Africa/Sao_Tome
GMT+0 Africa/Timbuktu
GMT+2 Africa/Tripoli
GMT+1 Africa/Tunis
GMT+2 Africa/Windhoek
GMT-10 America/Adak
GMT-9 America/Anchorage
GMT-4 America/Anguilla
GMT-4 America/Antigua
GMT-3 America/Araguaina
GMT-3 America/Argentina/Buenos_Aires
GMT-3 America/Argentina/Catamarca
GMT-3 America/Argentina/ComodRivadavia
GMT-3 America/Argentina/Cordoba
GMT-3 America/Argentina/Jujuy
GMT-3 America/Argentina/La_Rioja
GMT-3 America/Argentina/Mendoza
GMT-3 America/Argentina/Rio_Gallegos
GMT-3 America/Argentina/Salta
GMT-3 America/Argentina/San_Juan
GMT-3 America/Argentina/San_Luis
GMT-3 America/Argentina/Tucuman
GMT-3 America/Argentina/Ushuaia
GMT-4 America/Aruba
GMT-3 America/Asuncion
GMT-5 America/Atikokan
GMT-10 America/Atka
GMT-3 America/Bahia
GMT-6 America/Bahia_Banderas
GMT-4 America/Barbados
GMT-3 America/Belem
GMT-6 America/Belize
GMT-4 America/Blanc-Sablon
GMT-4 America/Boa_Vista
GMT-5 America/Bogota
GMT-7 America/Boise
GMT-3 America/Buenos_Aires
GMT-7 America/Cambridge_Bay
GMT-3 America/Campo_Grande
GMT-5 America/Cancun
GMT-4 America/Caracas
GMT-3 America/Catamarca
GMT-3 America/Cayenne
GMT-5 America/Cayman
GMT-6 America/Chicago
GMT-7 America/Chihuahua
GMT-5 America/Coral_Harbour
GMT-3 America/Cordoba
GMT-6 America/Costa_Rica
GMT-7 America/Creston
GMT-3 America/Cuiaba
GMT-4 America/Curacao
GMT+0 America/Danmarkshavn
GMT-8 America/Dawson
GMT-7 America/Dawson_Creek
GMT-7 America/Denver
GMT-5 America/Detroit
GMT-4 America/Dominica
GMT-7 America/Edmonton
GMT-5 America/Eirunepe
GMT-6 America/El_Salvador
GMT-8 America/Ensenada
GMT-7 America/Fort_Nelson
GMT-5 America/Fort_Wayne
GMT-3 America/Fortaleza
GMT-4 America/Glace_Bay
GMT-3 America/Godthab
GMT-4 America/Goose_Bay
GMT-5 America/Grand_Turk
GMT-4 America/Grenada
GMT-4 America/Guadeloupe
GMT-6 America/Guatemala
GMT-5 America/Guayaquil
GMT-4 America/Guyana
GMT-4 America/Halifax
GMT-5 America/Havana
GMT-7 America/Hermosillo
GMT-5 America/Indiana/Indianapolis
GMT-6 America/Indiana/Knox
GMT-5 America/Indiana/Marengo
GMT-5 America/Indiana/Petersburg
GMT-6 America/Indiana/Tell_City
GMT-5 America/Indiana/Vevay
GMT-5 America/Indiana/Vincennes
GMT-5 America/Indiana/Winamac
GMT-5 America/Indianapolis
GMT-7 America/Inuvik
GMT-5 America/Iqaluit
GMT-5 America/Jamaica
GMT-3 America/Jujuy
GMT-9 America/Juneau
GMT-5 America/Kentucky/Louisville
GMT-5 America/Kentucky/Monticello
GMT-6 America/Knox_IN
GMT-4 America/Kralendijk
GMT-4 America/La_Paz
GMT-5 America/Lima
GMT-8 America/Los_Angeles
GMT-5 America/Louisville
GMT-4 America/Lower_Princes
GMT-3 America/Maceio
GMT-6 America/Managua
GMT-4 America/Manaus
GMT-4 America/Marigot
GMT-4 America/Martinique
GMT-6 America/Matamoros
GMT-7 America/Mazatlan
GMT-3 America/Mendoza
GMT-6 America/Menominee
GMT-6 America/Merida
GMT-9 America/Metlakatla
GMT-6 America/Mexico_City
GMT-3 America/Miquelon
GMT-4 America/Moncton
GMT-6 America/Monterrey
GMT-3 America/Montevideo
GMT-5 America/Montreal
GMT-4 America/Montserrat
GMT-5 America/Nassau
GMT-5 America/New_York
GMT-5 America/Nipigon
GMT-9 America/Nome
GMT-2 America/Noronha
GMT-6 America/North_Dakota/Beulah
GMT-6 America/North_Dakota/Center
GMT-6 America/North_Dakota/New_Salem
GMT-7 America/Ojinaga
GMT-5 America/Panama
GMT-5 America/Pangnirtung
GMT-3 America/Paramaribo
GMT-7 America/Phoenix
GMT-5 America/Port-au-Prince
GMT-4 America/Port_of_Spain
GMT-5 America/Porto_Acre
GMT-4 America/Porto_Velho
GMT-4 America/Puerto_Rico
GMT-3 America/Punta_Arenas
GMT-6 America/Rainy_River
GMT-6 America/Rankin_Inlet
GMT-3 America/Recife
GMT-6 America/Regina
GMT-6 America/Resolute
GMT-5 America/Rio_Branco
GMT-3 America/Rosario
GMT-8 America/Santa_Isabel
GMT-3 America/Santarem
GMT-3 America/Santiago
GMT-4 America/Santo_Domingo
GMT-2 America/Sao_Paulo
GMT-1 America/Scoresbysund
GMT-7 America/Shiprock
GMT-9 America/Sitka
GMT-4 America/St_Barthelemy
GMT-3 America/St_Johns
GMT-4 America/St_Kitts
GMT-4 America/St_Lucia
GMT-4 America/St_Thomas
GMT-4 America/St_Vincent
GMT-6 America/Swift_Current
GMT-6 America/Tegucigalpa
GMT-4 America/Thule
GMT-5 America/Thunder_Bay
GMT-8 America/Tijuana
GMT-5 America/Toronto
GMT-4 America/Tortola
GMT-8 America/Vancouver
GMT-4 America/Virgin
GMT-8 America/Whitehorse
GMT-6 America/Winnipeg
GMT-9 America/Yakutat
GMT-7 America/Yellowknife
GMT+8 Antarctica/Casey
GMT+7 Antarctica/Davis
GMT+10 Antarctica/DumontDUrville
GMT+11 Antarctica/Macquarie
GMT+5 Antarctica/Mawson
GMT+13 Antarctica/McMurdo
GMT-3 Antarctica/Palmer
GMT-3 Antarctica/Rothera
GMT+13 Antarctica/South_Pole
GMT+3 Antarctica/Syowa
GMT+0 Antarctica/Troll
GMT+6 Antarctica/Vostok
GMT+1 Arctic/Longyearbyen
GMT+3 Asia/Aden
GMT+6 Asia/Almaty
GMT+2 Asia/Amman
GMT+12 Asia/Anadyr
GMT+5 Asia/Aqtau
GMT+5 Asia/Aqtobe
GMT+5 Asia/Ashgabat
GMT+5 Asia/Ashkhabad
GMT+5 Asia/Atyrau
GMT+3 Asia/Baghdad
GMT+3 Asia/Bahrain
GMT+4 Asia/Baku
GMT+7 Asia/Bangkok
GMT+7 Asia/Barnaul
GMT+2 Asia/Beirut
GMT+6 Asia/Bishkek
GMT+8 Asia/Brunei
GMT+5 Asia/Calcutta
GMT+9 Asia/Chita
GMT+8 Asia/Choibalsan
GMT+8 Asia/Chongqing
GMT+8 Asia/Chungking
GMT+5 Asia/Colombo
GMT+6 Asia/Dacca
GMT+2 Asia/Damascus
GMT+6 Asia/Dhaka
GMT+9 Asia/Dili
GMT+4 Asia/Dubai
GMT+5 Asia/Dushanbe
GMT+2 Asia/Famagusta
GMT+2 Asia/Gaza
GMT+8 Asia/Harbin
GMT+2 Asia/Hebron
GMT+7 Asia/Ho_Chi_Minh
GMT+8 Asia/Hong_Kong
GMT+7 Asia/Hovd
GMT+8 Asia/Irkutsk
GMT+3 Asia/Istanbul
GMT+7 Asia/Jakarta
GMT+9 Asia/Jayapura
GMT+2 Asia/Jerusalem
GMT+4 Asia/Kabul
GMT+12 Asia/Kamchatka
GMT+5 Asia/Karachi
GMT+6 Asia/Kashgar
GMT+5 Asia/Kathmandu
GMT+5 Asia/Katmandu
GMT+9 Asia/Khandyga
GMT+5 Asia/Kolkata
GMT+7 Asia/Krasnoyarsk
GMT+8 Asia/Kuala_Lumpur
GMT+8 Asia/Kuching
GMT+3 Asia/Kuwait
GMT+8 Asia/Macao
GMT+8 Asia/Macau
GMT+11 Asia/Magadan
GMT+8 Asia/Makassar
GMT+8 Asia/Manila
GMT+4 Asia/Muscat
GMT+2 Asia/Nicosia
GMT+7 Asia/Novokuznetsk
GMT+7 Asia/Novosibirsk
GMT+6 Asia/Omsk
GMT+5 Asia/Oral
GMT+7 Asia/Phnom_Penh
GMT+7 Asia/Pontianak
GMT+9 Asia/Pyongyang
GMT+3 Asia/Qatar
GMT+6 Asia/Qyzylorda
GMT+6 Asia/Rangoon
GMT+3 Asia/Riyadh
GMT+7 Asia/Saigon
GMT+11 Asia/Sakhalin
GMT+5 Asia/Samarkand
GMT+9 Asia/Seoul
GMT+8 Asia/Shanghai
GMT+8 Asia/Singapore
GMT+11 Asia/Srednekolymsk
GMT+8 Asia/Taipei
GMT+5 Asia/Tashkent
GMT+4 Asia/Tbilisi
GMT+3 Asia/Tehran
GMT+2 Asia/Tel_Aviv
GMT+6 Asia/Thimbu
GMT+6 Asia/Thimphu
GMT+9 Asia/Tokyo
GMT+7 Asia/Tomsk
GMT+8 Asia/Ujung_Pandang
GMT+8 Asia/Ulaanbaatar
GMT+8 Asia/Ulan_Bator
GMT+6 Asia/Urumqi
GMT+10 Asia/Ust-Nera
GMT+7 Asia/Vientiane
GMT+10 Asia/Vladivostok
GMT+9 Asia/Yakutsk
GMT+6 Asia/Yangon
GMT+5 Asia/Yekaterinburg
GMT+4 Asia/Yerevan
GMT-1 Atlantic/Azores
GMT-4 Atlantic/Bermuda
GMT+0 Atlantic/Canary
GMT-1 Atlantic/Cape_Verde
GMT+0 Atlantic/Faeroe
GMT+0 Atlantic/Faroe
GMT+1 Atlantic/Jan_Mayen
GMT+0 Atlantic/Madeira
GMT+0 Atlantic/Reykjavik
GMT-2 Atlantic/South_Georgia
GMT+0 Atlantic/St_Helena
GMT-3 Atlantic/Stanley
GMT+11 Australia/ACT
GMT+10 Australia/Adelaide
GMT+10 Australia/Brisbane
GMT+10 Australia/Broken_Hill
GMT+11 Australia/Canberra
GMT+11 Australia/Currie
GMT+9 Australia/Darwin
GMT+8 Australia/Eucla
GMT+11 Australia/Hobart
GMT+11 Australia/LHI
GMT+10 Australia/Lindeman
GMT+11 Australia/Lord_Howe
GMT+11 Australia/Melbourne
GMT+11 Australia/NSW
GMT+9 Australia/North
GMT+8 Australia/Perth
GMT+10 Australia/Queensland
GMT+10 Australia/South
GMT+11 Australia/Sydney
GMT+11 Australia/Tasmania
GMT+11 Australia/Victoria
GMT+8 Australia/West
GMT+10 Australia/Yancowinna
GMT-5 Brazil/Acre
GMT-2 Brazil/DeNoronha
GMT-2 Brazil/East
GMT-4 Brazil/West
GMT+1 CET
GMT-6 CST6CDT
GMT-4 Canada/Atlantic
GMT-6 Canada/Central
GMT-5 Canada/Eastern
GMT-7 Canada/Mountain
GMT-3 Canada/Newfoundland
GMT-8 Canada/Pacific
GMT-6 Canada/Saskatchewan
GMT-8 Canada/Yukon
GMT-3 Chile/Continental
GMT-5 Chile/EasterIsland
GMT-5 Cuba
GMT+2 EET
GMT-5 EST5EDT
GMT+2 Egypt
GMT+0 Eire
GMT+0 Etc/GMT
GMT+0 Etc/GMT+0
GMT-1 Etc/GMT+1
GMT-10 Etc/GMT+10
GMT-11 Etc/GMT+11
GMT-12 Etc/GMT+12
GMT-2 Etc/GMT+2
GMT-3 Etc/GMT+3
GMT-4 Etc/GMT+4
GMT-5 Etc/GMT+5
GMT-6 Etc/GMT+6
GMT-7 Etc/GMT+7
GMT-8 Etc/GMT+8
GMT-9 Etc/GMT+9
GMT+0 Etc/GMT-0
GMT+1 Etc/GMT-1
GMT+10 Etc/GMT-10
GMT+11 Etc/GMT-11
GMT+12 Etc/GMT-12
GMT+13 Etc/GMT-13
GMT+14 Etc/GMT-14
GMT+2 Etc/GMT-2
GMT+3 Etc/GMT-3
GMT+4 Etc/GMT-4
GMT+5 Etc/GMT-5
GMT+6 Etc/GMT-6
GMT+7 Etc/GMT-7
GMT+8 Etc/GMT-8
GMT+9 Etc/GMT-9
GMT+0 Etc/GMT0
GMT+0 Etc/Greenwich
GMT+0 Etc/UCT
GMT+0 Etc/UTC
GMT+0 Etc/Universal
GMT+0 Etc/Zulu
GMT+1 Europe/Amsterdam
GMT+1 Europe/Andorra
GMT+4 Europe/Astrakhan
GMT+2 Europe/Athens
GMT+0 Europe/Belfast
GMT+1 Europe/Belgrade
GMT+1 Europe/Berlin
GMT+1 Europe/Bratislava
GMT+1 Europe/Brussels
GMT+2 Europe/Bucharest
GMT+1 Europe/Budapest
GMT+1 Europe/Busingen
GMT+2 Europe/Chisinau
GMT+1 Europe/Copenhagen
GMT+0 Europe/Dublin
GMT+1 Europe/Gibraltar
GMT+0 Europe/Guernsey
GMT+2 Europe/Helsinki
GMT+0 Europe/Isle_of_Man
GMT+3 Europe/Istanbul
GMT+0 Europe/Jersey
GMT+2 Europe/Kaliningrad
GMT+2 Europe/Kiev
GMT+3 Europe/Kirov
GMT+0 Europe/Lisbon
GMT+1 Europe/Ljubljana
GMT+0 Europe/London
GMT+1 Europe/Luxembourg
GMT+1 Europe/Madrid
GMT+1 Europe/Malta
GMT+2 Europe/Mariehamn
GMT+3 Europe/Minsk
GMT+1 Europe/Monaco
GMT+3 Europe/Moscow
GMT+2 Europe/Nicosia
GMT+1 Europe/Oslo
GMT+1 Europe/Paris
GMT+1 Europe/Podgorica
GMT+1 Europe/Prague
GMT+2 Europe/Riga
GMT+1 Europe/Rome
GMT+4 Europe/Samara
GMT+1 Europe/San_Marino
GMT+1 Europe/Sarajevo
GMT+4 Europe/Saratov
GMT+3 Europe/Simferopol
GMT+1 Europe/Skopje
GMT+2 Europe/Sofia
GMT+1 Europe/Stockholm
GMT+2 Europe/Tallinn
GMT+1 Europe/Tirane
GMT+2 Europe/Tiraspol
GMT+4 Europe/Ulyanovsk
GMT+2 Europe/Uzhgorod
GMT+1 Europe/Vaduz
GMT+1 Europe/Vatican
GMT+1 Europe/Vienna
GMT+2 Europe/Vilnius
GMT+4 Europe/Volgograd
GMT+1 Europe/Warsaw
GMT+1 Europe/Zagreb
GMT+2 Europe/Zaporozhye
GMT+1 Europe/Zurich
GMT+0 GB
GMT+0 GB-Eire
GMT+0 GMT
GMT+0 GMT0
GMT+0 Greenwich
GMT+8 Hongkong
GMT+0 Iceland
GMT+3 Indian/Antananarivo
GMT+6 Indian/Chagos
GMT+7 Indian/Christmas
GMT+6 Indian/Cocos
GMT+3 Indian/Comoro
GMT+5 Indian/Kerguelen
GMT+4 Indian/Mahe
GMT+5 Indian/Maldives
GMT+4 Indian/Mauritius
GMT+3 Indian/Mayotte
GMT+4 Indian/Reunion
GMT+3 Iran
GMT+2 Israel
GMT-5 Jamaica
GMT+9 Japan
GMT+12 Kwajalein
GMT+2 Libya
GMT+1 MET
GMT-7 MST7MDT
GMT-8 Mexico/BajaNorte
GMT-7 Mexico/BajaSur
GMT-6 Mexico/General
GMT+13 NZ
GMT+13 NZ-CHAT
GMT-7 Navajo
GMT+8 PRC
GMT-8 PST8PDT
GMT+14 Pacific/Apia
GMT+13 Pacific/Auckland
GMT+11 Pacific/Bougainville
GMT+13 Pacific/Chatham
GMT+10 Pacific/Chuuk
GMT-5 Pacific/Easter
GMT+11 Pacific/Efate
GMT+13 Pacific/Enderbury
GMT+13 Pacific/Fakaofo
GMT+13 Pacific/Fiji
GMT+12 Pacific/Funafuti
GMT-6 Pacific/Galapagos
GMT-9 Pacific/Gambier
GMT+11 Pacific/Guadalcanal
GMT+10 Pacific/Guam
GMT-10 Pacific/Honolulu
GMT-10 Pacific/Johnston
GMT+14 Pacific/Kiritimati
GMT+11 Pacific/Kosrae
GMT+12 Pacific/Kwajalein
GMT+12 Pacific/Majuro
GMT-9 Pacific/Marquesas
GMT-11 Pacific/Midway
GMT+12 Pacific/Nauru
GMT-11 Pacific/Niue
GMT+11 Pacific/Norfolk
GMT+11 Pacific/Noumea
GMT-11 Pacific/Pago_Pago
GMT+9 Pacific/Palau
GMT-8 Pacific/Pitcairn
GMT+11 Pacific/Pohnpei
GMT+11 Pacific/Ponape
GMT+10 Pacific/Port_Moresby
GMT-10 Pacific/Rarotonga
GMT+10 Pacific/Saipan
GMT-11 Pacific/Samoa
GMT-10 Pacific/Tahiti
GMT+12 Pacific/Tarawa
GMT+13 Pacific/Tongatapu
GMT+10 Pacific/Truk
GMT+12 Pacific/Wake
GMT+12 Pacific/Wallis
GMT+10 Pacific/Yap
GMT+1 Poland
GMT+0 Portugal
GMT+9 ROK
GMT+8 Singapore
GMT-4 SystemV/AST4
GMT-4 SystemV/AST4ADT
GMT-6 SystemV/CST6
GMT-6 SystemV/CST6CDT
GMT-5 SystemV/EST5
GMT-5 SystemV/EST5EDT
GMT-10 SystemV/HST10
GMT-7 SystemV/MST7
GMT-7 SystemV/MST7MDT
GMT-8 SystemV/PST8
GMT-8 SystemV/PST8PDT
GMT-9 SystemV/YST9
GMT-9 SystemV/YST9YDT
GMT+3 Turkey
GMT+0 UCT
GMT-9 US/Alaska
GMT-10 US/Aleutian
GMT-7 US/Arizona
GMT-6 US/Central
GMT-5 US/East-Indiana
GMT-5 US/Eastern
GMT-10 US/Hawaii
GMT-6 US/Indiana-Starke
GMT-5 US/Michigan
GMT-7 US/Mountain
GMT-8 US/Pacific
GMT-8 US/Pacific-New
GMT-11 US/Samoa
GMT+0 UTC
GMT+0 Universal
GMT+3 W-SU
GMT+0 WET
GMT+0 Zulu
从上面的输出可以看出,要表示中国北京时区对应的ZoneId,ZoneId并不是Asia/Beijing,而是Asia/Shanghai
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有