温馨提示×

centos怎样解析时间戳

小樊
46
2026-09-11 16:14:58
栏目: 智能运维

在 CentOS(以及绝大多数 Linux 发行版)中,“解析时间戳”通常指把 Unix 时间戳(秒/毫秒)转换成可读时间,或反过来。下面按常见场景说明。


一、Unix 时间戳 → 可读时间

1️⃣ 使用 date 命令(最常用)

秒级时间戳(10 位)

date -d @1700000000

指定格式

date -d @1700000000 "+%Y-%m-%d %H:%M:%S"

毫秒级时间戳(13 位)

date -d @$(echo "1700000000000 / 1000" | bc)

或:

date -d "1970-01-01 UTC 1700000000 seconds"

二、可读时间 → Unix 时间戳

1️⃣ 当前时间

date +%s

2️⃣ 指定时间

date -d "2023-11-15 12:13:20" +%s

毫秒:

date -d "2023-11-15 12:13:20" +%s%3N

三、UTC / 时区问题

CentOS 默认使用系统时区,可用以下命令查看:

timedatectl

使用 UTC 解析

date -u -d @1700000000

四、在脚本中解析(Shell 变量)

ts=1700000000
date -d @$ts "+%F %T"

五、使用 Python(更灵活)

python3 -c "import datetime; print(datetime.datetime.fromtimestamp(1700000000))"

毫秒:

python3 -c "import datetime; print(datetime.datetime.fromtimestamp(1700000000000/1000))"

六、常见错误

❌ 时间戳是 13 位但直接用:

date -d @1700000000000   # 错误

✅ 先除以 1000


如果你是指:

  • 日志中的时间戳解析
  • Java / Nginx / MySQL 时间戳
  • 批量解析文件中的时间戳

可以告诉我具体场景,我可以给你更针对性的命令。

0