gpt4 book ai didi

Java 8 时区 ZoneRulesException : Unknown time-zone ID: EST

转载 作者:行者123 更新时间:2023-12-04 11:04:56 38 4
gpt4 key购买 nike

“EST”是 TimeZone.getAvailableIDs() 中的时区 ID 之一;


TimeZone.getAvailableIDs();  // contains EST
ZoneId.of("EST")

java.time.zone.ZoneRulesException:未知时区 ID:EST

最佳答案

您正在混合新旧 API。

TimeZone.getAvailableIDs() 返回 TimeZone.getTimeZone(String ID) 的时区 ID可以解决。

ZoneId.getAvailableZoneIds() 返回 ZoneId.of(String zoneId) 的区域 ID可以解决。

如果比较 2 的结果,您将看到:

public static void main(String[] args) {
Set<String> timeZones = Set.of(TimeZone.getAvailableIDs());
Set<String> zoneIds = ZoneId.getAvailableZoneIds();
System.out.println("Extra TimeZone's: " + diff(timeZones, zoneIds));
System.out.println("Extra ZoneId's: " + diff(zoneIds, timeZones));
}
static Set<String> diff(Set<String> a, Set<String> b) {
Set<String> diff = new TreeSet<>(a);
diff.removeAll(b);
return diff;
}

输出 (jdk-11.0.1)

Extra TimeZone's: [ACT, AET, AGT, ART, AST, BET, BST, CAT, CNT, CST, CTT, EAT, ECT, EST, HST, IET, IST, JST, MIT, MST, NET, NST, PLT, PNT, PRT, PST, SST, VST]
Extra ZoneId's: []

如您所见, ZoneId.getAvailableZoneIds()不声称支持 EST , 仅 TimeZone.getAvailableIDs()做。

关于Java 8 时区 ZoneRulesException : Unknown time-zone ID: EST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57468423/

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