gpt4 book ai didi

java - Java ZoneId 无法识别美国的哪些短时区 ID?

转载 作者:行者123 更新时间:2023-12-01 17:31:37 24 4
gpt4 key购买 nike

我有一些代码可以从记录中读取短时区 ID 并将其传递给以下内容:

ZoneId.of(ZoneId.SHORT_IDS.get(place.getTz()))

我无法控制使用什么时区 ID,但我的印象是它始终是合法的短时区 ID。

我想情况是我需要询问“根据哪个标准的合法短时区 ID?”例如,我刚刚发现我们有时区 ID 为“AKST”的记录,它对应于阿拉斯加标准时间。 Java ZoneId 类无法识别这一点。

我的解决方法是为美国的时区 ID 手动构建 ZoneId,我知道我需要支持它,但我知道 ZoneId 不支持。我的 list 现在只剩下一项了。是否还有 ZoneId 不支持的其他“标准”(无论这意味着什么)短时区 ID?

最佳答案

唯一受支持的“短 ID”是 listed in the Java docs :

EST - -05:00
HST - -10:00
MST - -07:00
ACT - Australia/Darwin
AET - Australia/Sydney
AGT - America/Argentina/Buenos_Aires
ART - Africa/Cairo
AST - America/Anchorage
BET - America/Sao_Paulo
BST - Asia/Dhaka
CAT - Africa/Harare
CNT - America/St_Johns
CST - America/Chicago
CTT - Asia/Shanghai
EAT - Africa/Addis_Ababa
ECT - Europe/Paris
IET - America/Indiana/Indianapolis
IST - Asia/Kolkata
JST - Asia/Tokyo
MIT - Pacific/Apia
NET - Asia/Yerevan
NST - Pacific/Auckland
PLT - Asia/Karachi
PNT - America/Phoenix
PRT - America/Puerto_Rico
PST - America/Los_Angeles
SST - Pacific/Guadalcanal
VST - Asia/Ho_Chi_Minh

“AKST”可能是某些人使用的英文时区缩写,但它不是 Java Time API 支持的“短 ID”。

请记住,“短 ID”的唯一想法是为了向后兼容已使用的较旧 Java 应用程序。一般来说,使用几个字母来标识时区并不是一个好主意。有太多的含糊之处。例如,虽然“CST”代表“中部标准时间”并映射到此列表中的美国/芝加哥,但它也代表“古巴标准时间”(美国/哈瓦那) code>)和“中国标准时间”(亚洲/上海) - 此处均未映射。

关于java - Java ZoneId 无法识别美国的哪些短时区 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61111712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com