在 CentOS(以及大多数 Linux 系统)中,生成时间戳有多种方式,取决于你需要的时间戳类型(秒级、毫秒级、纳秒级)以及使用场景。以下是常见方法汇总:
date 命令(推荐)date +%s
输出示例:
1700000000
✅ 表示从 1970-01-01 00:00:00 UTC 到现在的秒数
date + 纳秒计算date +%s%3N
输出示例:
1700000000123
⚠️ 需要 date 支持 %N(CentOS 7+ 一般支持)
date +%s000
手动补毫秒(适合不要求真实毫秒的场景)
date +%s%N
输出示例:
1700000000123456789
date "+%Y-%m-%d %H:%M:%S"
输出:
2025-01-20 15:30:45
TS=$(date +%Y%m%d_%H%M%S)
echo "backup_$TS.tar.gz"
输出:
backup_20250120_153045.tar.gz
#!/bin/bash
start=$(date +%s)
sleep 2
end=$(date +%s)
echo "耗时: $((end - start)) 秒"
date -d "2025-01-01 00:00:00" +%s
date -d "7 days ago" +%s
date -d "next Monday" +%s
awk 生成时间戳awk 'BEGIN {print systime()}'
%N 不支持date -u +%s
| 需求 | 命令 |
|---|---|
| 秒级时间戳 | date +%s |
| 毫秒时间戳 | date +%s%3N |
| 纳秒时间戳 | date +%s%N |
| 可读时间 | date "+%F %T" |
| 文件名时间戳 | date +%Y%m%d_%H%M%S |
如果你是 做日志、做签名、做接口、做备份、做脚本,可以告诉我具体场景,我可以给你更合适的命令示例。