在 Ubuntu(Linux)里,时间戳精确到毫秒通常有两种常见需求:
1️⃣ 获取当前时间的毫秒级时间戳
2️⃣ 格式化时间,显示到毫秒
下面分别说明。
date(最常用)date +%s%3N
示例输出:
1719301234567
说明:
%s:秒级时间戳%3N:毫秒(3 位)⚠️ 注意:某些老版本 date(如 coreutils < 8.0)不支持 %N
python(最稳妥)python3 -c 'import time; print(int(time.time()*1000))'
awkawk 'BEGIN { print int(sys2mil()) }' # 不通用
更推荐:
date +%s%3N
date +"%Y-%m-%d %H:%M:%S.%3N"
输出示例:
2025-06-25 14:30:45.123
date -d @1719301234.567 "+%Y-%m-%d %H:%M:%S.%3N"
注意:
date用的是秒,所以要除以 1000
TS=$(date +%s%3N)
echo "timestamp: $TS"
❌ 不要这样写(错误):
date +%s.%N # 有些系统会得到空值
✅ 推荐:
date +%s%3N
如果你有 脚本场景 / 日志场景 / C/C++ / Java 时间戳互转 需求,也可以告诉我。