首頁  >  文章  >  Java  >  如何在 Java 中將毫秒轉換為具有準確時區的日期?

如何在 Java 中將毫秒轉換為具有準確時區的日期?

Linda Hamilton
Linda Hamilton原創
2024-11-01 03:59:02374瀏覽

How to Convert Milliseconds to Dates in Java with Accurate Time Zones?

在Java 中將毫秒轉換為日期

處理包含毫秒時間戳的日誌檔案時,有必要將這些值轉換為可戳讀的值日期。但是,SimpleDateFormat 的預設行為可能會因為不同區域的差異而導致不準確。本文將指導您透過不同的方法來有效地將毫秒轉換為指定時區的日期。

內建Java 日期類別

java.util.Date 類別可讓您依照提供的毫秒建立Date 物件:

<code class="java">Date date = new Date(millis);</code>

<code class="java">var instance = java.time.Instant.ofEpochMilli(millis);
var localDateTime = java.time.LocalDateTime.ofInstant(instance, java.time.ZoneId.of("Asia/Kolkata"));</code>

SimpleDateFormat

<code class="java">var formatter = java.time.format.DateTimeFormatter.ofPattern("u-M-d hh:mm:ss a O");
var string = zonedDateTime.format(formatter);</code>

一旦有了Date 對象,您就可以使用SimpleDateFormat 在所需的格式。但是,了解與您的系統關聯的預設時區非常重要。

java.time 套件

<code class="java">GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("US/Central"));
calendar.setTimeInMillis(millis);

DateTime jodaTime = new DateTime(millis, DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Central")));</code>
Java SE 中引入的java.time 套件8 提供了更全面的日期和時間處理方法:

您可以使用java.time.ZoneId.of("TimeZoneID") 指定特定時區。要格式化日期,請使用:

GregorianCalendar 和JodaTime或者,您可以利用GregorianCalendar 和JodaTime 庫: 處理時區差異為了確保準確轉換為正確的時區,請在使用GregorianCalendar 或JodaTime 時明確指定所需的時區。透過引用日誌檔案本身的時區,您可以保持資料完整性。

以上是如何在 Java 中將毫秒轉換為具有準確時區的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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