程序员经常遇到 "1712345678" 这种数字——这是 Unix 时间戳。本文介绍秒级和毫秒级时间戳的区别及转换方法。

秒级 vs 毫秒级

类型示例常见场景
秒级(10 位)1722345678Unix/Linux 系统、MySQL TIMESTAMP
毫秒级(13 位)1722345678000JavaScript Date.now()、Java System.currentTimeMillis()

各语言转换方法

// JavaScript
new Date(1722345678 * 1000).toISOString() // 秒级转日期
Math.floor(Date.now() / 1000)              // 日期转秒级时间戳

// Python
import datetime, time
datetime.datetime.fromtimestamp(1722345678)  # 秒级转日期
int(time.time())                             # 日期转秒级时间戳

// Shell
date -d @1722345678           # 秒级转日期
date +%s                      # 当前秒级时间戳
技巧:如果时间戳是 13 位(毫秒),在 FreeBox 在线工具中直接输入即可自动识别。如果是 10 位(秒),工具也能正确处理。