ホームページ  >  記事  >  Java  >  Java でミリ秒のタイムスタンプを人間が判読できる時刻文字列に変換するにはどうすればよいですか?

Java でミリ秒のタイムスタンプを人間が判読できる時刻文字列に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-11 22:59:02314ブラウズ

How to Convert Millisecond Timestamps to Human-Readable Time Strings in Java?

Java でミリ秒のタイムスタンプを人間が判読できる時刻文字列に変換する

タイムスタンプ付きデータを扱う場合、多くの場合、ミリ秒数を表す長整数を変換する必要が生じます。エポック (1970 年 1 月 1 日) を、「h:m:s:ms」(時:分:秒:ミリ秒) などの、より読みやすく有益な形式に変換します。

log4j のコンテキストでは、取得ログ イベントのタイムスタンプは、logEvent.timeStamp フィールドを通じて取得できます。ただし、このタイムスタンプを書式設定された時刻に変換するのは難しい場合があります。

間違ったアプローチ:

秒数で割るなどの操作を使用してミリ秒を直接変換しようとします。変換プロセスには単純な算術以上の処理が含まれるため、TimeUnit.MILLISECONDS.toMinutes() メソッドを使用すると、誤った結果が得られます。

正しい解決策:

ミリ秒のタイムスタンプを書式設定された時刻文字列に正確に変換するには、Java の組み込みの日付と時刻の書式設定機能を利用できます。

Date date = new Date(logEvent.timeStamp);
DateFormat formatter = new SimpleDateFormat("HH:mm:ss.SSS");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateFormatted = formatter.format(date);

この例では、変換プロセスを示します。

  • new Date() は、ミリ秒の値から Date オブジェクトを作成します。
  • SimpleDateFormat は、特定の日付パターン (時、分、秒、ミリ秒を表す「HH:mm:ss.SSS」) を持つフォーマッタを作成します。
  • フォーマットの一貫性を確保するために、フォーマッタのタイム ゾーンは UTC (協定世界時) に設定されます。
  • formatter.format(date) は、フォーマットされた時間を文字列として返します。

その他の書式設定オプション:

Java API は、さまざまな書式設定スタイルをサポートするさまざまな SimpleDateFormat 日付パターンを提供します。一般的なオプションをいくつか示します:

Pattern Output
"h:m:s:ms" 03:34:56:123
"EEE, MMM d, yyyy hh:mm:ss a" Wed, Mar 17, 2023 03:34:56 PM
"yyyy-MM-dd HH:mm:ss.SSS" 2023-03-17 15:34:56.123

以上がJava でミリ秒のタイムスタンプを人間が判読できる時刻文字列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。