将纪元毫秒时间戳转换为可读日期时间
在许多情况下,例如在处理 JSON 格式的 API 响应、处理网站上嵌入的 JavaScript 资源等时,我们经常会看到 13 位长数字,我们可能知道它是源自 new Date().getTime()
等代码的纪元时间戳,但是,作为人类,我们无法快速判断它代表什么日期和时间。有一个名为 Epoch Converter 的便捷网站可以帮助轻松将其转换为人类可读的格式,但大多数时候对于开发人员来说,甚至还有比打开网站更快捷的方法,即使用许多编程语言自带的 interactive 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'