温馨提示×

怎么计算Ubuntu时间戳

小樊
34
2026-08-11 23:22:51
栏目: 智能运维

在 Ubuntu(以及大多数 Linux 系统)中,时间戳(timestamp)通常指的是 Unix 时间戳:从 1970-01-01 00:00:00 UTC 到当前时间所经过的秒数

下面按常见场景给你总结几种计算方法。


一、查看当前时间戳

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

date +%s

示例输出:

1719300000

✅ 方法 2:使用 date 显示纳秒级时间戳

date +%s%N

示例:

1719300000123456789

如果你只想要秒级:

date +%s

二、将指定时间转换为时间戳

✅ 方法 1:date -d

date -d "2025-01-01 00:00:00" +%s

输出:

1735660800

支持多种格式:

date -d "Jan 1 2025" +%s
date -d "2025/01/01 12:00:00" +%s

✅ 方法 2:指定时区

TZ=UTC date -d "2025-01-01 00:00:00" +%s

三、将时间戳转换为可读时间

✅ 方法 1:date -d @时间戳

date -d @1719300000

输出:

Mon Jun 24 00:00:00 CST 2025

✅ 方法 2:指定格式

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

输出:

2025-06-24 00:00:00

四、毫秒 / 微秒 / 纳秒时间戳

单位 命令
date +%s
毫秒 date +%s%3N
微秒 date +%s%6N
纳秒 date +%s%9N

⚠️ 注意:

  • %N 需要 date (GNU coreutils) 支持(Ubuntu 默认支持)
  • macOS 的 date 不支持 %N

五、在脚本中使用时间戳

Bash 示例

start=$(date +%s)
sleep 2
end=$(date +%s)

echo "耗时: $((end - start)) 秒"

六、Python 计算时间戳(补充)

如果你在 Ubuntu 上用 Python:

python3 -c "import time; print(int(time.time()))"

指定时间:

python3 -c "from datetime import datetime; print(int(datetime(2025,1,1).timestamp()))"

七、常见误区

❌ 时间戳 不包含时区信息
✅ 时间戳本质是 UTC 秒数

date +%s
TZ=Asia/Shanghai date +%s
TZ=UTC date +%s

上面结果 一样


如果你有具体需求(比如:日志时间转时间戳、文件名中的时间、毫秒级、C/C++ 程序里使用),可以直接告诉我,我给你针对示例。

0