温馨提示×

ubuntu时间戳怎样对比

小樊
33
2026-09-28 09:39:51
栏目: 智能运维

在 Ubuntu(Linux)里,“时间戳”通常指 Unix 时间戳(从 1970-01-01 00:00:00 UTC 起的秒数,或毫秒数)。对比时间戳常见有几种场景,下面按常见用法说明。


一、在命令行直接对比两个时间戳

1️⃣ 两个 10 位秒级时间戳比较

ts1=1700000000
ts2=1700003600

if [ "$ts1" -lt "$ts2" ]; then
  echo "ts1 早于 ts2"
else
  echo "ts1 晚于或等于 ts2"
fi

Shell 中时间戳就是整数,可直接比较。


二、时间戳 ↔ 时间互转(方便对比)

2️⃣ 秒级时间戳转可读时间

date -d @1700000000

3️⃣ 可读时间转时间戳

date -d "2023-11-15 00:00:00" +%s

4️⃣ 毫秒时间戳(13 位)

date +%s%3N

三、对比“现在”和时间戳

now=$(date +%s)
ts=1700000000

if [ "$now" -gt "$ts" ]; then
  echo "当前时间晚于该时间戳"
fi

四、计算两个时间戳差值

ts1=1700000000
ts2=1700003600

diff=$((ts2 - ts1))
echo "相差 ${diff} 秒"

五、按时间排序(日志 / 文件)

如果有一堆时间戳:

echo -e "1700003600\n1700000000\n1699999999" | sort -n

六、常见坑提醒 ⚠️

  • 时区问题:date -d @时间戳 显示的是本地时间
  • 10 位 vs 13 位
    • 10 位 = 秒
    • 13 位 = 毫秒(比较前 ÷1000)
ts_ms=1700000000000
ts_s=$((ts_ms / 1000))

如果你能说具体场景(比如:shell 脚本?Python?日志分析?数据库?),我可以给你更贴切的示例。

0 踩