問題:
ミリ秒を日付に変換する場合SimpleDateFormat を使用して形式を設定する場合、プログラムはマシンの日付を使用します。これは、別のタイムゾーンでは正しい時刻を表さない可能性があります。
解決策:
この問題を処理するにはエレガントには、次のアプローチを使用できます:
<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>
Instant および ZonedDateTime の使用:
<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>
<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 中国語 Web サイトの他の関連記事を参照してください。