首頁 >Java >java教程 >如何在時區之間精確轉換 Java 日期/時間物件?

如何在時區之間精確轉換 Java 日期/時間物件?

DDD
DDD原創
2024-11-28 11:14:15639瀏覽

How Can I Accurately Convert Java Date/Time Objects Between Time Zones?

在Java 中將日期/時間轉換為特定時區

問題:

轉換日期和時間在Java 中,從一個時區到另一個時區可能具有挑戰性。使用者提供的用於將當前時間從 GMT 轉換為 GMT 13 的程式碼看起來很簡單,但在設定特定時間時,相同的方法會失敗。使用者質疑為什麼在這種情況下使用本地電腦的時區。

解:

當建立一個沒有明確時區,假定時間採用 UTC。但是,當使用毫秒在 Calendar 物件上設定時間時(如在 calendar.setTime(new Date(1317816735000L)) 中),假設時間位於主機的時區。

To為了克服這個問題,您可以在格式化時間之前明確設定SimpleDateFormat 物件的時區:

此程式碼將傳回指定時區(GMT 13)中的日期作為字串。

自訂日期/時間轉換的步驟:

  1. 建立日曆物件並設定時間和日期。
  2. 使用指定初始時區sdf.setTimeZone(TimeZone.getTimeZone("GMT")).
  3. 使用 sdf.format(calendar.getTime()) 格式化時間。
  4. 將所需的時區設定為 SimpleDateFormat 物件使用 sdf.setTimeZone(TimeZone.getTimeZone("GMT 13"))。
  5. 使用新時區重新​​格式化時間以獲得轉換後的值。

以上是如何在時區之間精確轉換 Java 日期/時間物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn