使用TimeZone 在Java 中處理夏令時
在Java 中使用時區時,考慮夏令時(DST) 至關重要)以確保準確的時間表示。本文解決了將 TimeZone 類別與 EST(東部標準時間)結合使用時遇到的常見問題。
問題陳述:
將時區設定為 EST 時使用 TimeZone.getTimeZone("EST"),應用程式無法調整 DST,導致一小時的差異。即使使用 TimeZone.getTimeZone("EDT"),此問題仍然存在。
解:
根本問題源自於 EST 與 EDT 的使用。這些縮寫分別指「標準」時間和「夏令時」時間,並不完全代表時區。要解決這個問題,必須使用完整的時區名稱。
例如,要表示東部時區,包括標準時間和夏令時,請使用 TimeZone.getTimeZone("America/New_York") 。這可確保應用程式動態處理 DST 調整。
實際上,無論DST 如何,以下程式碼片段都會列印正確的時間:
TimeZone zone = TimeZone.getTimeZone("America/New_York"); DateFormat format = DateFormat.getDateTimeInstance(); format.setTimeZone(zone); System.out.println(format.format(new Date()));
透過使用完整時區名稱,應用程式可以有效解決夏令時並顯示準確的時間表示。
以上是Java中如何使用TimeZone準確處理夏令時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!