在 CentOS(Linux)里,“时间戳比对”常见有几种场景,下面按最常见用法给你说明:
date +%s
date +%s%3N
(CentOS 6 可能不支持 %N,可用 date +%s000 近似)
date -d @1700000000
date -d @1700000000 "+%Y-%m-%d %H:%M:%S"
时间戳本质是数字,可直接用 shell 比较:
t1=$(date -d "2024-01-01" +%s)
t2=$(date -d "2024-06-01" +%s)
if [ "$t1" -lt "$t2" ]; then
echo "t1 早于 t2"
fi
stat file.txt
if [ file1 -nt file2 ]; then
echo "file1 更新"
fi
find /path -type f -mtime +7
假设日志是:
2024-01-01 12:00:00
转成时间戳再比:
t_log=$(date -d "2024-01-01 12:00:00" +%s)
now=$(date +%s)
if [ "$now" -gt "$t_log" ]; then
echo "日志时间已过去"
fi
| 场景 | 用法 |
|---|---|
| 数值比较 | -lt -gt -eq -ne |
| 文件新旧 | -nt -ot |
| 时间转换 | date -d @时间戳 |
如果你能说清楚具体要比对什么(比如:日志时间、文件时间、数据库时间、脚本里比较),我可以直接给你一段可用脚本。