Javaでミリ秒単位のタイムスタンプを文字列形式の時間に変換する 質問する

Javaでミリ秒単位のタイムスタンプを文字列形式の時間に変換する 質問する

長い値を変換しようとしています(1970 年 1 月 1 日から経過したミリ秒数、つまりエポック) をフォーマットの時刻に設定しますh:m:s:ms

timestampタイムスタンプとして使用する long 値は、 log4j のログ イベントのフィールドから取得します。

これまで、次のことを試しましたが失敗しました。

logEvent.timeStamp/ (1000*60*60)
TimeUnit.MILLISECONDS.toMinutes(logEvent.timeStamp)

しかし、間違った値を取得します:

1289375173771 for logEvent.timeStamp
358159  for logEvent.timeStamp/ (1000*60*60) 
21489586 for TimeUnit.MILLISECONDS.toMinutes(logEvent.timeStamp)

これについてどうすればいいでしょうか?

ベストアンサー1

これを試して:

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

見るシンプルな日付形式クラスが受け入れる他の書式文字列の説明。

見る実行可能な例1200 ミリ秒の入力を使用します。

おすすめ記事