首頁  >  文章  >  Java  >  如何將 currentTimeMillis 轉換為具有區域設定特定格式的日期?

如何將 currentTimeMillis 轉換為具有區域設定特定格式的日期?

Susan Sarandon
Susan Sarandon原創
2024-11-01 07:14:30688瀏覽

How to Convert currentTimeMillis to a Date with Locale-Specific Formatting?

如何將currentTimeMillis 轉換為具有區域特定格式的日期

問題:

將毫秒轉換為日期時使用SimpleDateFormat 格式,程式使用機器的日期,這可能無法代表不同時區的正確時間。

解決方案:

處理此問題優雅地,您可以使用以下方法:

  • Java.util.Date :
<code class="java">Date date = new Date(millis);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS", Locale.US);
String formattedDate = sdf.format(date);</code>
  • Java Time API (Java 8 ):

<code class="java">Instant instant = Instant.ofEpochMilli(millis);
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.of("US/Central"));

// Format the date
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS");
String formattedDate = zonedDateTime.format(formatter);</code>

使用LocalDateTime:

<code class="java">LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("US/Central"));

// Format the date
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS");
String formattedDate = localDateTime.format(formatter);</code>
  • Joda-Time(舊版)
<code class="java">DateTime jodaTime = new DateTime(millis, DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Central")));

// Format the date
DateTimeFormatter parser1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss,SSS");
String formattedDate = parser1.print(jodaTime);</code>
透過使用這些方法,您可以將毫秒轉換為語言環境中的日期格式-具體方式,確保表示正確的時間。

以上是如何將 currentTimeMillis 轉換為具有區域設定特定格式的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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