在 Java 中使用时区时,必须使用正确的区域标识符以避免夏令时 (DST) 导致的不一致)。如果处理不当,DST 可能会导致时间计算失败。
在您的特定情况下,使用“EST”作为时区标识符是有问题的。 “EST”代表东部标准时间,不根据 DST 进行调整。这会导致您的应用程序在 DST 期间打印的时间比实际时间少一个小时。
要解决此问题,请切换到使用完整的区域标识符“America/New_York”而不是“EST”。该时区代表东部时区,会自动调整 DST。通过使用正确的区域标识符,您的代码将始终检索正确的时间,无论夏令时如何。
以下是使用正确区域标识符的更新代码片段:
<code class="java">TimeZone zone = TimeZone.getTimeZone("America/New_York"); DateFormat format = DateFormat.getDateTimeInstance(); format.setTimeZone(zone); System.out.println(format.format(new Date()));</code>
通过此调整,您的应用程序将始终打印 EST 时间,并考虑 DST。
以上是如何使用 TimeZone 避免 Java 中的夏令时问题?的详细内容。更多信息请关注PHP中文网其他相关文章!