温馨提示×

centos如何转换时间戳

小樊
105
2026-08-29 12:56:35
栏目: 智能运维

在 CentOS(及其他 Linux 发行版)中,时间戳通常指的是 Unix 时间戳(秒级,从 1970-01-01 00:00:00 UTC 起)。下面给你几种常用且实用的转换方式。


一、时间戳 → 可读时间

方法 1:date 命令(最常用 ✅)

date -d @1700000000

输出示例:

Sat Nov 14 22:13:20 CST 2020

如果需要指定格式:

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

输出:

2020-11-14 22:13:20

方法 2:指定时区

TZ=UTC date -d @1700000000

二、可读时间 → 时间戳

方法 1:当前时间

date +%s

方法 2:指定时间

date -d "2020-11-14 22:13:20" +%s

输出:

1700000000

如果是 UTC 时间:

date -u -d "2020-11-14 14:13:20" +%s

三、毫秒时间戳处理

毫秒 → 秒

echo "1700000000123 / 1000" | bc

或直接:

date -d @$((1700000000123 / 1000))

当前毫秒时间戳

date +%s%3N

如果 centos 不支持 %N:

date +%s && echo $(date +%s)000

四、批量转换(脚本示例)

for ts in 1700000000 1700001000 1700002000; do
  date -d @$ts "+%Y-%m-%d %H:%M:%S"
done

五、常见问题

❓ CentOS 版本影响吗?

  • ✅ CentOS 6 / 7 / 8 / Stream 都支持 date -d @timestamp
  • CentOS 6 的 date 功能略弱,建议升级或安装 coreutils

❓ 时间戳和时区的关系

  • 时间戳是 UTC 的
  • 显示时间受系统时区影响(/etc/localtime)

如果你有 具体场景(日志分析、数据库时间、Nginx 日志、Java 毫秒时间等),可以告诉我,我可以给你更针对性的命令或脚本。

0 踩