Java:无需DST即可获得太平洋时区

Java:无需DST即可获得太平洋时区,java,timezone,Java,Timezone,我需要在代码中使用不包含DST的太平洋时区。我知道美国/洛杉矶考虑了DST。当我尝试使用PST时,API引发此异常的时间: java.time.zone.ZoneRulesException: Unknown time-zone ID: PST 有解决方案吗?PST不是时区ID 听起来你并不真的想使用太平洋时区,而是想要一个恒定的UTC偏移-8小时。您可以通过以下方式实现: ZoneOffset offset = ZoneOffset.ofHours(-8); PST不是时区ID 听起来你并

我需要在代码中使用不包含DST的太平洋时区。我知道美国/洛杉矶考虑了DST。当我尝试使用PST时,API引发此异常的时间:

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

有解决方案吗?

PST不是时区ID

听起来你并不真的想使用太平洋时区,而是想要一个恒定的UTC偏移-8小时。您可以通过以下方式实现:

ZoneOffset offset = ZoneOffset.ofHours(-8);

PST不是时区ID

听起来你并不真的想使用太平洋时区,而是想要一个恒定的UTC偏移-8小时。您可以通过以下方式实现:

ZoneOffset offset = ZoneOffset.ofHours(-8);
选择包括:

如Jon Skeet的回答中所述,使用区域偏移。由于ZoneOffset是ZoneId的一个子类,因此可以在任何需要ZoneId的地方使用它。 使用太平洋/皮特凯恩分区。该时区全年偏移量为-08:00。皮特凯恩标准时间也缩写为PST。 为完整起见,ZoneId.ofEtc/GMT+8提供了一个区域ID,该区域ID不是区域偏移,而是等同于区域偏移+8。如果没有拼写错误,则该符号是故意颠倒的。 链接:

选项包括:

如Jon Skeet的回答中所述,使用区域偏移。由于ZoneOffset是ZoneId的一个子类,因此可以在任何需要ZoneId的地方使用它。 使用太平洋/皮特凯恩分区。该时区全年偏移量为-08:00。皮特凯恩标准时间也缩写为PST。 为完整起见,ZoneId.ofEtc/GMT+8提供了一个区域ID,该区域ID不是区域偏移,而是等同于区域偏移+8。如果没有拼写错误,则该符号是故意颠倒的。
链接:

我觉得这是一个特殊的要求,所以我想知道这是否是一个特殊的要求。你能解释一下你为什么需要这个吗?我相信这将有助于我们帮助您找到最好的选择。是的,这是一个XY问题。我真的不想在这里解释X,因为X在我们的系统中是一个愚蠢的东西,没有人有时间去修复它。希望这能澄清问题。在这种情况下,这似乎是正确的选择。谢谢。在我看来这是一个特殊的要求,所以我想知道是否可能是一些。你能解释一下你为什么需要这个吗?我相信这将有助于我们帮助您找到最好的选择。是的,这是一个XY问题。我真的不想在这里解释X,因为X在我们的系统中是一个愚蠢的东西,没有人有时间去修复它。希望这能澄清问题。在这种情况下,这似乎是正确的选择。非常感谢。