在 CentOS(Linux) 中,把 时间戳(秒级)转成可读字符串,常用有下面几种方式。
date 命令(最常用 ✅)date -d "@1700000000"
输出示例:
Fri Nov 14 22:13:20 CST 2023
date -d "@1700000000" "+%Y-%m-%d %H:%M:%S"
输出:
2023-11-14 22:13:20
常用格式符:
%Y 年%m 月%d 日%H 时%M 分%S 秒date 只支持秒,需要去掉后三位:
ts=1700000000123
date -d "@${ts:0:10}" "+%Y-%m-%d %H:%M:%S"
timestamp=1700000000
time_str=$(date -d "@$timestamp" "+%Y-%m-%d %H:%M:%S")
echo "$time_str"
awk(不依赖 date)echo 1700000000 | awk '{print strftime("%Y-%m-%d %H:%M:%S", $1)}'
⚠️ 注意:awk 的 strftime 在某些老版本可能不支持。
date +%s
export TZ=Asia/Shanghai
date -d "@1700000000"
| 场景 | 推荐方式 |
|---|---|
| 秒级时间戳 | date -d "@时间戳" |
| 指定格式 | date -d "@时间戳" "+%F %T" |
| 脚本中 | $(date -d "@ts" ...) |
| 毫秒时间戳 | 截取前 10 位 |
如果你是在 日志分析 / shell 脚本 / crontab 中使用,可以告诉我具体场景,我可以给你更合适的写法。