我需要在我的代码中使用太平洋时区,该时间没有包含DST。我知道America/Los_Angeles
考虑了DST。当我尝试使用PST
时,时间API会抛出此异常:
java.time.zone.ZoneRulesException: Unknown time-zone ID: PST
有解决方案吗?
答案 0 :(得分:7)
“ PST”不是时区ID。
听起来好像您真的不想使用太平洋时区,而是想要将UTC的恒定偏移时间设置为-8小时。您可以执行以下操作:
ZoneOffset offset = ZoneOffset.ofHours(-8);
答案 1 :(得分:2)
选项包括:
ZoneOffset
,如Jon Skeet的答案中所述。由于ZoneOffset
是ZoneId
的子类,因此可以在需要ZoneId
的任何地方使用它。ZoneId.of("Pacific/Pitcairn")
。该时区全年偏移-08:00。皮特凯恩标准时间也是PST的缩写。ZoneId.of("Etc/GMT+8")
为您提供的区域ID不是ZoneOffset
,但与ZoneOffset
等效(+8
不是错字,符号是故意倒转)。