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

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

Linda Hamilton
發布: 2024-11-01 03:59:02
原創
504 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板