エポックミリ秒タイムスタンプを読み取り可能な日付時刻に変換する
JSON 形式の API 応答を処理したり、Web サイトに埋め込まれた JavaScript アセットを操作したりするなど、多くの場合、13 桁の長い数字を頻繁に目にします。おそらく、それが new Date().getTime()
などのコードから生成されたエポック タイムスタンプであることはわかっていますが、人間にはそれがどの日付と時刻を表しているかをすぐには判断できません。Epoch Converter という便利な Web サイトがあり、これを人間が読める形式に簡単に変換できますが、開発者にとっては、Web サイトを開くよりもさらに迅速な方法があります。それは、多くのプログラミング言語に付属している インタラクティブ シェル
を使用することです。
In Node.js/JavaScript
// node or browser console
> new Date(1685506340672)
2023-05-31T04:12:20.672Z
In Java
// jshell jdk 9+
import java.time.*;
jshell> Instant.ofEpochMilli(1685506340672L).atZone(ZoneId.of("Asia/Tokyo"))
//$1 ==> 2023-05-31T13:12:20.672+09:00[Asia/Tokyo]
In Ruby
# irb
irb(main):001:0> Time.at(0, 1685506340672, :millisecond)
=> 2023-05-31 13:12:20.672 +0900
In Python
>>> from datetime import datetime
>>> d = datetime.fromtimestamp(1685506340672/1000)
>>> str(d)
'2023-05-31 13:12:20.672000'