將紀元毫秒時間戳記轉換為可讀日期時間

在許多情況下,例如處理 JSON 格式的 API 回應、處理網站上嵌入的 JavaScript 資源等時,我們會頻繁看到 13 位長數字,並且我們可能知道它是源自new Date().getTime()等程式碼的紀元時間戳,但是,作為人類,我們無法快速分辨出它代表的日期和時間。有一個名為 Epoch Converter 的便捷網站,可以輕鬆地將其轉換為人類可讀的格式,但對於開發人員來說,大多數時候還有比打開網站更快捷的方法,即使用許多程式語言自帶的「互動式 shell」。

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'

javascript nodejs java ruby python