Java でミリ秒を日付に変換する
ミリ秒単位のタイムスタンプを含むログ ファイルを扱う場合、これらの値を読み取り可能な値に変換する必要があります。日付。ただし、SimpleDateFormat のデフォルトの動作では、トーム ゾーンの違いにより不正確さが生じる可能性があります。この記事では、ミリ秒を指定されたタイム ゾーンの日付に効果的に変換するさまざまな方法について説明します。
組み込み Java Date クラス
java.util.Date クラス提供されたものから Date オブジェクトを作成できます。ミリ秒:
<code class="java">Date date = new Date(millis);</code>
SimpleDateFormat
Date オブジェクトを取得したら、SimpleDateFormat を使用して目的の形式に書式設定できます。ただし、システムに関連付けられた事前設定されたタイムゾーンに注意することが重要です。
java.time パッケージ
Java SE で導入された java.time パッケージ8 では、日付と時刻の処理に対するより包括的なアプローチが提供されます。
<code class="java">var instance = java.time.Instant.ofEpochMilli(millis); var localDateTime = java.time.LocalDateTime.ofInstant(instance, java.time.ZoneId.of("Asia/Kolkata"));</code>
次を使用して特定のタイム ゾーンを指定できます。 java.time.ZoneId.of("タイムゾーンID")。日付の形式を設定するには、
<code class="java">var formatter = java.time.format.DateTimeFormatter.ofPattern("u-M-d hh:mm:ss a O"); var string = zonedDateTime.format(formatter);</code>
GregorianCalendar および JodaTime
を使用します。または、GregorianCalendar ライブラリと JodaTime ライブラリを利用することもできます:
<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>
取り扱い時間帯相違点
正しいタイム ゾーンに正確に変換するには、GregorianCalendar または JodaTime を使用するときに目的のタイム ゾーンを明示的に指定します。ログ ファイル自体からタイム ゾーンを参照することで、データの整合性を維持できます。
以上が正確なタイムゾーンを使用してJavaでミリ秒を日付に変換する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。