文章目录
-
- [date 命令详解](#date 命令详解)
- 基础用法示例
-
- [1. 显示当前时间](#1. 显示当前时间)
- [2. 使用预设格式](#2. 使用预设格式)
- [3. 自定义格式输出](#3. 自定义格式输出)
- [4. 完整日期时间格式(最常用)](#4. 完整日期时间格式(最常用))
- 高级用法
-
- [1. 时间计算(相对时间)](#1. 时间计算(相对时间))
- [2. 精确到秒的时间计算](#2. 精确到秒的时间计算)
- [3. Unix 时间戳操作](#3. Unix 时间戳操作)
- [4. 特定日期时间设置](#4. 特定日期时间设置)
- [5. 时间格式转换](#5. 时间格式转换)
- [6. 去除前导零](#6. 去除前导零)
- [7. 显示文件修改时间](#7. 显示文件修改时间)
- [8. ISO 8601 和 RFC 格式](#8. ISO 8601 和 RFC 格式)
- [9. 多行输出和特殊字符](#9. 多行输出和特殊字符)
- [10. 时区操作](#10. 时区操作)
- 实际应用示例
-
- [示例 1:创建带时间戳的备份文件](#示例 1:创建带时间戳的备份文件)
- [示例 2:记录脚本执行时间](#示例 2:记录脚本执行时间)
- [示例 3:定期清理旧日志](#示例 3:定期清理旧日志)
- [示例 4:生成带时间戳的日志条目](#示例 4:生成带时间戳的日志条目)
- [示例 5:计算两个日期之间的天数](#示例 5:计算两个日期之间的天数)
- [设置系统时间(需要 root 权限)](#设置系统时间(需要 root 权限))
-
- [1. 设置完整日期时间](#1. 设置完整日期时间)
- [2. 仅设置日期](#2. 仅设置日期)
- [3. 仅设置时间](#3. 仅设置时间)
- [4. 同步到硬件时钟](#4. 同步到硬件时钟)
- 注意事项与常见问题
-
- [1. 权限问题](#1. 权限问题)
- [2. 时区问题](#2. 时区问题)
- [3. 特殊字符转义](#3. 特殊字符转义)
- [4. 语言环境问题](#4. 语言环境问题)
- [5. 性能优化](#5. 性能优化)
- 快速参考卡片
- 总结
- 参考文档
date 命令详解
date 命令是 Linux/Unix 系统中最基本也是最常用的命令之一,它的主要功能是显示或设定系统的日期与时间。这个命令不仅可以查看当前时间,还能进行灵活的时间格式化、计算和时间转换。
当你在终端中需要获取系统时间、记录日志时间戳、或者进行时间计算时,date 命令就非常有用了。
bash
$ date
Mon Mar 17 14:25:51 CST 2026
$ date "+%Y-%m-%d %H:%M:%S"
2026-03-17 14:25:51
$ date -d "yesterday" +%Y-%m-%d
2026-03-16
基本概念
date 命令的主要功能包括:
- 显示时间:显示当前系统日期和时间
- 格式化输出:按照指定格式输出日期时间
- 时间计算:计算过去或未来的时间(如昨天、下周、3 天后等)
- 设置时间:修改系统日期和时间(需要 root 权限)
- 时区转换:在不同时区间转换时间显示
语法
bash
date [OPTION]... [+FORMAT]
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
参数选项
| 选项 | 说明 |
|---|---|
-d 或 --date=STRING |
通过字符串显示时间(非"now") |
-f 或 --file=DATEFILE |
从文件逐行读取日期字符串并处理 |
-I[FMT] 或 --iso-8601[=FMT] |
按 ISO 8601 格式输出(FMT: date, hours, minutes, seconds, ns) |
-R 或 --rfc-2822 |
按 RFC 5322 格式输出(如:Mon, 14 Aug 2006 02:34:56 -0600) |
--rfc-3339=FMT |
按 RFC 3339 格式输出(FMT: date, seconds, ns) |
-r 或 --reference=FILE |
显示文件的最后修改时间 |
-s 或 --set=STRING |
根据字符串设置系统时间(需 root 权限) |
-u 或 --utc 或 --universal |
显示或设置协调世界时 (UTC) |
--help |
显示帮助信息 |
--version |
输出版本信息 |
常用格式标记
在显示方面,可以使用加号后接格式标记来定制输出格式:
| 标记 | 说明 | 示例 |
|---|---|---|
%% |
输出字符 % | %% → % |
%a |
星期几的缩写 | Sun...Sat |
%A |
完整的星期名称 | Sunday...Saturday |
%b |
缩写的月份名称 | Jan, Feb, Mar |
%B |
完整的月份名称 | January, February |
%c |
本地日期和时间 | Thu Mar 3 23:05:25 2005 |
%C |
世纪(年份前两位) | 20 |
%d |
日 (01...31) | 01, 15, 31 |
%D |
日期,等价于 %m/%d/%y |
03/17/26 |
%e |
一月中的一天(空格填充) | 1, 15, 31 |
%F |
完整日期,等价于 %Y-%m-%d |
2026-03-17 |
%g |
ISO 标准计数周的年份(后两位) | 26 |
%G |
ISO 标准计数周的年份 | 2026 |
%h |
等价于 %b |
Mar |
%H |
小时 (00...23) | 00, 14, 23 |
%I |
小时 (01...12) | 01, 02, 12 |
%j |
一年中的第几天 (001...366) | 001, 076, 366 |
%k |
小时(空格填充,0...23) | 0, 14, 23 |
%l |
小时(空格填充,1...12) | 1, 2, 12 |
%m |
月份 (01...12) | 01, 03, 12 |
%M |
分钟 (00...59) | 00, 25, 59 |
%n |
新的一行(换行符) | \n |
%N |
纳秒 (000000000...999999999) | 123456789 |
%p |
当地 AM 或 PM | AM, PM |
%P |
类似 %p,但小写 |
am, pm |
%r |
本地 12 小时制时间 | 11:11:04 PM |
%R |
24 小时制时分,等价于 %H:%M |
14:25 |
%s |
自 1970-01-01 00:00:00 UTC 的秒数(Unix 时间戳) | 1710655551 |
%S |
秒 (00...60) | 00, 30, 60 |
%t |
插入水平制表符(Tab) | \t |
%T |
时间,等价于 %H:%M:%S |
14:25:51 |
%u |
一周中的第几天 (1...7),1=星期一 | 1, 5, 7 |
%U |
一年中的第几周(周日为起始) | 00, 11, 53 |
%V |
ISO 标准计数周(周一为起始) | 01, 12, 53 |
%w |
一周中的第几天 (0...6),0=星期天 | 0, 1, 6 |
%W |
一年中的第几周(周一为起始) | 00, 11, 53 |
%x |
本地日期格式 | 12/31/99 |
%X |
本地时间格式 | 23:13:48 |
%y |
年份后两位 (00...99) | 26 |
%Y |
完整年份 | 2026 |
%z |
+hhmm 格式时区 | -0400, +0800 |
%:z |
+hh:mm 格式时区 | -04:00, +08:00 |
%::z |
+hh:mm:ss 格式时区 | -04:00:00 |
%Z |
时区缩写 | CST, EDT, UTC |
基础用法示例
1. 显示当前时间
最基本的用法,直接输入 date 命令:
bash
$ date
Mon Mar 17 14:25:51 CST 2026
2. 使用预设格式
bash
# 显示完整日期和时间
$ date '+%c'
Mon 17 Mar 2026 02:25:51 PM CST
# 显示完整日期(MM/DD/YY)
$ date '+%D'
03/17/26
# 显示完整的 年月日 时分秒
$ date +"%Y-%m-%d %H:%M:%S"
2026-03-17 16:04:09
# 显示数字日期(MM/DD/YYYY)
$ date '+%x'
03/17/2026
# 显示 24 小时制时间
$ date '+%T'
14:25:51
# 显示 12 小时制时间
$ date '+%X'
02:25:51 PM
# 显示完整日期时间
$ date '+%F %T'
2026-03-17 14:25:51
3. 自定义格式输出
bash
# 年月日格式
$ date +"%Y-%m-%d"
2026-03-17
# 时分秒格式
$ date +"%H:%M:%S"
14:25:51
# 中文格式
$ date +"%Y年%m月%d日 %H时%M分%S秒"
2026 年 03 月 17 日 14 时 42 分 06 秒
# 带星期的格式
$ date +"%Y-%m-%d %A"
2026-03-17 Tuesday
# 日志文件名格式
$ date +"log_%Y%m%d_%H%M%S.txt"
log_20260317_142551.txt
4. 完整日期时间格式(最常用)
这些是最常用的完整日期时间格式,强烈建议掌握:
bash
# 标准格式:年月日 时分秒(推荐)
$ date +"%Y-%m-%d %H:%M:%S"
2026-03-17 14:25:51
# 紧凑格式:无分隔符
$ date +"%Y%m%d%H%M%S"
20260317142551
# 文件名友好格式(推荐用于备份文件)
$ date +"%Y%m%d_%H%M%S"
20260317_142551
# 带星期信息
$ date +"%Y-%m-%d %A %H:%M:%S"
2026-03-17 Tuesday 14:25:51
# 中文完整格式
$ date +"%Y年%m月%d日 %H:%M:%S"
2026年03月17日 14:25:51
# ISO 8601 完整格式
$ date -Iseconds
2026-03-17T14:25:51+08:00
# RFC 3339 完整格式
$ date --rfc-3339=seconds
2026-03-17 14:25:51+08:00
# 日志常用格式(方括号包裹)
$ echo "[$(date +"%Y-%m-%d %H:%M:%S")] 系统启动成功"
[2026-03-17 14:25:51] 系统启动成功
# 数据库时间戳格式
$ date +"%Y-%m-%d %H:%M:%S.%N" | cut -c1-23
2026-03-17 14:25:51.123
# 美式格式
$ date +"%m/%d/%Y %H:%M:%S"
03/17/2026 14:25:51
# 欧式格式
$ date +"%d/%m/%Y %H:%M:%S"
17/03/2026 14:25:51
# 12 小时制完整时间
$ date +"%Y-%m-%d %I:%M:%S %p"
2026-03-17 02:25:51 PM
# 包含毫秒
$ date +"%Y-%m-%d %H:%M:%S.%3N"
2026-03-17 14:25:51.123
# 包含微秒
$ date +"%Y-%m-%d %H:%M:%S.%6N"
2026-03-17 14:25:51.123456
高级用法
1. 时间计算(相对时间)
使用 -d 选项可以进行时间的加减运算:
天数计算
bash
# 显示前一天的日期
date -d "-1 day" +%Y%m%d
# 显示后一天的日期
date -d "+1 day" +%Y%m%d
# 显示上一月的日期
date -d "-1 month" +%Y%m%d
# 显示下一月的日期
date -d "+1 month" +%Y%m%d
# 显示前一年的日期
date -d "-1 year" +%Y%m%d
# 显示下一年的日期
date -d "+1 year" +%Y%m%d
# 显示昨天的日期
$ date -d "yesterday" +%Y-%m-%d
2026-03-16
# 显示明天的日期
$ date -d "tomorrow" +%Y-%m-%d
2026-03-18
# 显示 3 天后的日期
$ date -d "+3 days" +%Y-%m-%d
2026-03-20
# 显示 1天后的日期
$ date -d "+1 days" +%Y-%m-%d
2026-03-18
# 显示 5 天前的日期
$ date -d "-5 days" +%Y-%m-%d
2026-03-12
# 显示 1 天前的日期
$ date -d "1 day ago" +"%Y-%m-%d"
2026-03-16
月份计算
bash
# 显示下个月的日期
$ date -d "+1 month" +%Y-%m-%d
2026-04-17
# 显示上个月的日期
$ date -d "-1 month" +%Y-%m-%d
2026-02-17
# 显示 3 个月后的日期
$ date -d "+3 months" +%Y-%m-%d
2026-06-17
年份计算
bash
# 显示明年的日期
$ date -d "+1 year" +%Y-%m-%d
2027-03-17
# 显示去年的日期
$ date -d "-1 year" +%Y-%m-%d
2025-03-17
组合计算
bash
# 显示 2 年 3 个月后的日期
$ date -d "+2 years +3 months" +%Y-%m-%d
2028-06-17
# 显示 1 周 2 天后的日期
$ date -d "+1 week +2 days" +%Y-%m-%d
2026-03-26
2. 精确到秒的时间计算
bash
# 显示 2 秒后的时间
$ date -d "2 second" +"%Y-%m-%d %H:%M.%S"
2026-03-17 14:25.53
# 显示 5 分钟后的时间
$ date -d "+5 minutes" +"%Y-%m-%d %H:%M:%S"
2026-03-17 14:30:51
# 显示 1 小时后的时间
$ date -d "+1 hour" +"%Y-%m-%d %H:%M:%S"
2026-03-17 15:25:51
3. Unix 时间戳操作
bash
# 显示当前 Unix 时间戳(秒数)
$ date +%s
1710655551
# 将时间戳转换为可读格式
# 语法:date -d @时间戳
$ date -d @1710655551 +"%Y-%m-%d %H:%M:%S"
2024-03-17 14:05:51
# 传说中的 1234567890 秒
$ date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%M:%S"
2009-02-13 23:02:30
# 或使用 @ 简写
$ date -d @1234567890 +"%F %T"
2009-02-13 23:02:30
4. 特定日期时间设置
bash
# 显示指定日期
$ date -d "2026-12-25" +"%Y-%m-%d %A"
2026-12-25 Friday
# 显示指定时间(日期为今天)
$ date -d "12:34:56"
Fri Mar 17 12:34:56 CST 2026
# 显示完整的指定日期时间
$ date -d "2026-06-15 10:30:00"
Mon Jun 15 10:30:00 CST 2026
5. 时间格式转换
bash
# 标准格式转换
$ date -d "2026-03-17" +"%Y/%m/%d %H:%M:%S"
2026/03/17 00:00:00
# Apache 日志格式转换
$ date -d "Dec 5, 2026 12:00:37 AM" +"%Y-%m-%d %H:%M:%S"
2026-12-05 00:00:37
# 时间游走(回到过去)
$ date -d "Dec 5, 2026 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M:%S"
2024-12-05 00:00:37
# 未来时间
$ date -d "next monday" +"%Y-%m-%d %A"
2026-03-23 Monday
$ date -d "next friday 3pm" +"%Y-%m-%d %H:%M:%S"
2026-03-20 15:00:00
6. 去除前导零
默认情况下,date 命令会在数字前补零(如 08, 09)。如果想去掉这些零:
bash
# 默认格式(有前导零)
$ date +"%Y-%m-%d %H:%M:%S"
2026-03-17 08:09:04
# 去掉前导零(使用 %- 标记)
$ date +"%-Y-%-m-%-d %-H:%-M:%-S"
2026-3-17 8:9:4
7. 显示文件修改时间
使用 -r 选项可以查看文件的最后修改时间:
bash
$ date -r /etc/passwd
Thu Oct 15 10:23:45 CST 2025
$ date -r /etc/passwd +"%Y-%m-%d %H:%M:%S"
2025-10-15 10:23:45
8. ISO 8601 和 RFC 格式
bash
# ISO 8601 格式
$ date -I
2026-03-17T14:25:51+08:00
$ date -Iseconds
2026-03-17T14:25:51+08:00
# RFC 2822 格式(邮件格式)
$ date -R
Mon, 17 Mar 2026 14:25:51 +0800
# RFC 3339 格式
$ date --rfc-3339=seconds
2026-03-17 14:25:51+08:00
9. 多行输出和特殊字符
bash
# 显示时间后换行,再显示日期
$ date '+%T%n%D'
14:25:51
03/17/26
# 使用 Tab 分隔
$ date '+Time:%T%nDate:%D'
Time:14:25:51
Date:03/17/26
# 使用制表符对齐
$ date '+%Y\t%m\t%d'
2026 03 17
10. 时区操作
bash
# 显示 UTC 时间
$ date -u
Mon Mar 17 06:25:51 UTC 2026
# 显示时区信息
$ date +%Z
CST
# 显示时区偏移量
$ date +%z
+0800
# 显示带冒号的时区格式
$ date +%:z
+08:00
实际应用示例
示例 1:创建带时间戳的备份文件
bash
#!/bin/bash
# 生成带时间戳的备份文件名
BACKUP_FILE="backup_$(date +%Y%m%d_%H%M%S).tar.gz"
echo "Creating backup: $BACKUP_FILE"
tar -czf "$BACKUP_FILE" /path/to/data/
echo "Backup completed successfully"
示例 2:记录脚本执行时间
bash
#!/bin/bash
START_TIME=$(date +%s)
START_FORMATTED=$(date +"%Y-%m-%d %H:%M:%S")
echo "Script started at: $START_FORMATTED"
# 模拟一些操作
sleep 5
END_TIME=$(date +%s)
END_FORMATTED=$(date +"%Y-%m-%d %H:%M:%S")
# 计算执行时间
DURATION=$((END_TIME - START_TIME))
echo "Script ended at: $END_FORMATTED"
echo "Total execution time: ${DURATION} seconds"
示例 3:定期清理旧日志
bash
#!/bin/bash
# 删除 30 天前的日志文件
LOG_DIR="/var/log/myapp"
DAYS_TO_KEEP=30
echo "Cleaning up logs older than $DAYS_TO_KEEP days..."
find "$LOG_DIR" -name "*.log" -type f -mtime +$DAYS_TO_KEEP -delete
echo "Cleanup completed at $(date '+%Y-%m-%d %H:%M:%S')"
示例 4:生成带时间戳的日志条目
bash
#!/bin/bash
# 记录脚本执行日志
LOG_FILE="/var/log/myscript.log"
# 写入带时间戳的日志
echo "[$(date +"%Y-%m-%d %H:%M:%S")] [INFO] 脚本开始执行" >> "$LOG_FILE"
# 执行某些操作
# ...
echo "[$(date +"%Y-%m-%d %H:%M:%S")] [INFO] 操作完成" >> "$LOG_FILE"
echo "[$(date +"%Y-%m-%d %H:%M:%S")] [ERROR] 如果发生错误" >> "$LOG_FILE"
示例 5:计算两个日期之间的天数
bash
#!/bin/bash
# 定义两个日期
DATE1="2026-01-01"
DATE2="2026-12-31"
# 转换为时间戳
TS1=$(date -d "$DATE1" +%s)
TS2=$(date -d "$DATE2" +%s)
# 计算差值(秒数)
DIFF_SECONDS=$((TS2 - TS1))
# 转换为天数
DIFF_DAYS=$((DIFF_SECONDS / 86400))
echo "从 $DATE1 到 $DATE2 相差 $DIFF_DAYS 天"
# 输出:从 2026-01-01 到 2026-12-31 相差 364 天
设置系统时间(需要 root 权限)
注意: 只有 root 用户才能设置系统时间。普通用户只能查看。
1. 设置完整日期时间
bash
# 方法 1:使用 -s 选项
sudo date -s "2026-03-17 14:30:00"
# 方法 2:使用 --set 选项
sudo date --set="20260317 143000"
# 方法 3:直接指定(MMDDhhmm[[CC]YY][.ss])
sudo date 031714302026.00
2. 仅设置日期
bash
# 设置为特定日期(时间变为 00:00:00)
sudo date -s 20260317
3. 仅设置时间
bash
# 只设置时间,不改变日期
sudo date -s 14:30:00
4. 同步到硬件时钟
修改系统时间后,建议同步到硬件时钟(CMOS):
bash
# 将系统时间写入 BIOS/CMOS
sudo hwclock -w
# 或
sudo clock -w
注意事项与常见问题
1. 权限问题
问题: 普通用户无法设置系统时间
bash
$ date -s "2026-03-17 14:30:00"
date: cannot set date: Permission denied
解决方案: 使用 sudo 提升权限
bash
sudo date -s "2026-03-17 14:30:00"
2. 时区问题
问题: 显示的时间与当地实际时间不符
检查当前时区:
bash
$ date +%Z
CST
$ timedatectl
Local time: Mon 2026-03-17 14:25:51 CST
Universal time: Mon 2026-03-17 06:25:51 UTC
RTC time: Mon 2026-03-17 06:25:51
Time zone: Asia/Shanghai (CST, +0800)
临时切换时区:
bash
# 切换到 UTC
export TZ=UTC
date
# 切换到纽约时间
export TZ=America/New_York
date
# 恢复系统默认
unset TZ
date
3. 特殊字符转义
输出百分号:
bash
$ echo "完成率:95%"
$ date +"%% 完成"
% 完成
4. 语言环境问题
问题: 星期和月份显示为英文
解决方案: 修改 locale 设置
bash
# 临时设置为中文
export LC_TIME=zh_CN.UTF-8
date +"%Y年%m月%d日 %A"
# 永久设置(添加到 ~/.bashrc)
echo 'export LC_TIME=zh_CN.UTF-8' >> ~/.bashrc
source ~/.bashrc
5. 性能优化
在处理大量时间戳时,避免重复调用 date:
bash
# 不推荐:多次调用 date
for i in {1..100}; do
echo "$(date +%Y-%m-%d) - Log entry $i"
done
# 推荐:只调用一次
TIMESTAMP=$(date +%Y-%m-%d)
for i in {1..100}; do
echo "$TIMESTAMP - Log entry $i"
done
快速参考卡片
bash
# 基础显示
date # 显示当前时间
date +"%Y-%m-%d" # 格式化日期
date +"%H:%M:%S" # 格式化时间
date +"%Y-%m-%d %H:%M:%S" # 完整日期时间
# 时间计算
date -d "yesterday" # 昨天
date -d "tomorrow" # 明天
date -d "+7 days" # 7 天后
date -d "-1 month" # 1 个月前
date -d "+1 year" # 1 年后
# Unix 时间戳
date +%s # 当前时间戳
date -d @1234567890 # 时间戳转日期
# 特殊格式
date -I # ISO 8601 格式
date -R # RFC 2822 格式
date +%z # 时区偏移
# 文件时间
date -r filename # 文件修改时间
# 设置时间(需 root)
sudo date -s "2026-03-17 14:30:00"
sudo hwclock -w # 写入硬件时钟
# 实用技巧
date +%Y%m%d_%H%M%S # 文件名时间戳
date -d "next monday" # 下周一
date -d "2 weeks ago" # 2 周前
date +"%A" # 星期几
date +%j # 一年中的第几天
总结
最常用的完整日期时间格式(强烈推荐掌握)
| 格式 | 命令 | 输出示例 | 适用场景 |
|---|---|---|---|
| 标准格式 | date +"%Y-%m-%d %H:%M:%S" |
2026-03-17 14:25:51 |
日志记录、数据库时间戳 |
| 紧凑格式 | date +"%Y%m%d%H%M%S" |
20260317142551 |
文件名、ID 生成 |
| 文件名格式 | date +"%Y%m%d_%H%M%S" |
20260317_142551 |
备份文件命名 |
| ISO 8601 | date -Iseconds |
2026-03-17T14:25:51+08:00 |
国际标准、API 交互 |
| RFC 3339 | date --rfc-3339=seconds |
2026-03-17 14:25:51+08:00 |
网络协议、邮件头 |
| 带星期 | date +"%Y-%m-%d %A %H:%M:%S" |
2026-03-17 Tuesday 14:25:51 |
报告、通知 |
| 中文格式 | date +"%Y年%m月%d日 %H:%M:%S" |
2026年03月17日 14:25:51 |
中文文档、报告 |
| 包含毫秒 | date +"%Y-%m-%d %H:%M:%S.%3N" |
2026-03-17 14:25:51.123 |
高精度日志 |
| 日志格式 | echo "[$(date +'%Y-%m-%d %H:%M:%S')]" |
[2026-03-17 14:25:51] |
脚本日志输出 |
| Unix 时间戳 | date +%s |
1710655551 |
时间计算、缓存过期 |
其他常用场景速查
| 应用场景 | 命令 | 说明 |
|---|---|---|
| 查看当前时间 | date |
最基本用法 |
| 格式化日期 | date "+%Y-%m-%d" |
仅日期部分 |
| 格式化时间 | date "+%H:%M:%S" |
仅时间部分 |
| 昨天/明天 | date -d "yesterday/tomorrow" |
相对日期计算 |
| N 天后 | date -d "+N days" |
未来日期 |
| N 天前 | date -d "-N days" |
过去日期 |
| 时间戳转换 | date -d @1234567890 |
时间戳转日期 |
| 文件修改时间 | date -r filename |
查看文件时间 |
| 设置系统时间 | sudo date -s "..." |
需 root 权限 |
| 显示 UTC 时间 | date -u |
协调世界时 |
| 时区信息 | date +%Z/%z |
时区缩写/偏移 |
实践建议
- 日志记录 :始终使用
YYYY-MM-DD HH:MM:SS格式,便于排序和阅读 - 文件命名 :使用
YYYYMMDD_HHMMSS格式,避免特殊字符 - 时间计算:使用 Unix 时间戳(秒数)进行精确计算
- 跨平台兼容:优先使用 ISO 8601 或 RFC 3339 标准格式
- 性能优化 :在循环中避免重复调用
date,先保存到变量 - 脚本编写 :使用
$(date)而非反引号date
date 命令是 Linux 系统管理中最常用的工具之一,掌握它的各种用法对于系统管理、脚本编写、日志分析等工作都非常重要。建议多加练习,熟能生巧。
参考文档
分享快乐,留住感动。'2026-03-17 22:30:00' --frank