date 命令

显示或设置系统日期与时间

type
status
date
slug
summary
tags
category
icon
password

一、命令功能

用于显示或设置系统日期与时间

二、语法格式


三、常用选项(OPTION)

选项
说明
-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 格式时间
--rfc-3339=FMT
输出 RFC 3339 格式时间(FMT: date, seconds, ns)
-r, --reference=FILE
显示文件最后修改时间
-s, --set=STRING
设置系统时间(需 root 权限)
-u, --utc, --universal
显示或设置 UTC 时间
--help
显示帮助信息
--version
显示版本信息

四、格式化输出标记(FORMAT)

常用格式符:

符号
说明
%Y
年份(四位数)
%y
年份(两位数)
%m
月份(01-12)
%d
日期(01-31)
%H
小时(00-23)
%M
分钟(00-59)
%S
秒(00-60)
%T
时间(等价于 %H:%M:%S
%F
日期(等价于 %Y-%m-%d
%D
日期(等价于 %m/%d/%y
%A
星期全称(如 Monday)
%a
星期缩写(如 Mon)
%B
月份全称(如 January)
%b
月份缩写(如 Jan)
%Z
时区缩写(如 CST)
%z
时区偏移(如 +0800)
%:z
时区偏移(如 +08:00)
%s
时间戳(自 1970-01-01 00:00:00 UTC 起的秒数)

特殊符号:

  • %%:输出 %
  • %n:换行
  • %t:制表符

去除前导零:

使用 %- 前缀,如:

五、使用示例

1. 显示当前时间

2. 格式化输出

3. 输出昨天/明天日期

4. 输出指定秒数后的时间

5. 时间戳转换

6. 时间加减操作

7. 设置系统时间(需 root)


六、注意事项

  1. 权限限制:只有 root 用户可设置系统时间。
  1. 写入 CMOS:设置时间后建议执行 clock -w 将时间写入硬件时钟。
  1. 时区问题:使用 u 可查看或设置 UTC 时间。
  1. 格式兼容性:不同系统对 date 命令的支持可能略有差异,建议测试后再用于脚本。

七、补充知识点

  • 时间戳%s 输出的是自 1970-01-01 00:00:00 UTC 起的秒数。
  • 纳秒精度%N 可输出纳秒(但并非所有系统支持)。
  • RFC 格式R-rfc-3339 适用于日志、API 等标准化时间输出。

Loading...