在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中文網其他相關文章!