Java:获得没有DST的太平洋时区



我需要在我的代码中使用太平洋时区,并入DST。我知道America/Los_Angeles考虑了DST。当我尝试使用PST时,时间API会引发此异常:

java.time.zone.ZoneRulesException: Unknown time-zone ID: PST

是否有解决方案?

" pst"不是时区ID。

听起来您真的不想使用太平洋时区,因为恒定的UTC偏移为-8小时。您可以使用:

ZoneOffset offset = ZoneOffset.ofHours(-8);

选项包括:

  • 使用乔恩·斯基特(Jon Skeet)答案中已经解释的ZoneOffset。由于ZoneOffsetZoneId的子类,因此您可以在任何地方使用ZoneId
  • 使用ZoneId.of("Pacific/Pitcairn")。这个时区全年为-08:00。Pitcairn标准时间也缩写为PST。
  • 为了完整性,ZoneId.of("Etc/GMT+8")为您提供了一个不是ZoneOffset的区域ID,而是等效于ZoneOffset+8不是错字,符号是故意倒置的)。

链接: TZ数据库时区的列表

相关内容

  • 没有找到相关文章

最新更新