タイムスタンプ付きデータを扱う場合、多くの場合、ミリ秒数を表す長整数を変換する必要が生じます。エポック (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);
この例では、変換プロセスを示します。
その他の書式設定オプション:
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 サイトの他の関連記事を参照してください。