Linux date 命令详解:用于显示和设置系统的日期与时间
Linux date
命令详解
一、命令简介
date
命令用于显示和设置系统的日期与时间。它不仅可以显示当前时间,还可以进行格式化输出、计算时间间隔,并允许管理员修改系统时间(需要 sudo
权限)。
二、命令语法
date [选项] [+格式]
date [选项] <新时间>
-
+格式
:自定义时间显示格式。 -
<新时间>
:设置系统时间(需 root 权限)。
三、命令选项
选项 | 作用 |
---|---|
+%Y-%m-%d | 按 YYYY-MM-DD 格式显示当前日期,如 2025-03-27 |
+%H:%M:%S | 按 HH:MM:SS 格式显示当前时间,如 14:30:45 |
+%A | 显示当前星期几,如 Thursday |
+%s | 显示 Unix 时间戳(从 1970-01-01 00:00:00 UTC 开始的秒数) |
-u | 以 UTC 时间显示当前时间 |
-d <时间字符串> | 显示指定时间字符串对应的日期 |
-s <新时间> | 设置系统时间,如 date -s "2025-03-27 14:00:00" |
--date=<时间字符串> | 计算某个时间的日期,如 date --date="next Monday" |
-r <文件> | 显示文件的最后修改时间 |
--iso-8601 | 以 ISO 8601 格式显示日期,如 2025-03-27 |
四、常见用法
-
显示当前日期和时间
date
示例输出:
Thu Mar 27 14:30:45 CST 2025
-
显示指定格式的日期
date "+%Y-%m-%d %H:%M:%S"
示例输出:
2025-03-27 14:30:45
-
显示当前 Unix 时间戳
date +%s
示例输出:
1740241845
-
将 Unix 时间戳转换为可读日期
date -d @1740241845
示例输出:
Thu Mar 27 14:30:45 CST 2025
-
计算 5 天后的日期
date -d "+5 days"
示例输出:
Tue Apr 01 14:30:45 CST 2025
-
计算上周一的日期
date -d "last Monday"
-
获取某个文件的最后修改时间
date -r /etc/passwd
-
以 ISO 8601 格式显示日期
date --iso-8601
示例输出:
2025-03-27
-
设置系统时间(需要 root 权限)
sudo date -s "2025-03-27 14:00:00"
-
同步系统时间(与 NTP 服务器同步)
sudo ntpdate time.windows.com
五、常见问题及解决方案
-
date -s
设置时间后重启失效-
可能是硬件时钟未更新,需手动同步:
sudo hwclock --systohc
-
-
date -u
显示的时间与本地时间不同-
-u
选项显示的是 UTC 时间,而本地时间可能是 CST(+8 时区):date -u date
-
-
修改时间失败(权限不足)
-
需要使用
sudo
执行:sudo date -s "2025-03-27 14:00:00"
-
六、总结
date
命令是 Linux 系统中用于查看和修改时间的重要工具。它支持自定义格式化显示、时间计算、时间戳转换等功能,并可用于脚本自动化和系统管理。
这里是封面: