Linux man date
date - 打印或则设置系统日期与时间。
版本
$ date --version
date (GNU coreutils) 8.22语法
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]描述
使用指定 FORMAT 显示当前时间,或则设置系统时间。
通常,date 使用 TZ 环境变量指定的时区,如未设置 TZ 环境变量,则使用系统默认时区。关于 TZ 环境变量,详见参考链接。
OPTION
-d, --date=STRING
显示由 STRING 描述的日期和时间,而不是当前日期和时间。
STRING 可以是很常见的格式,例如:
- date -d '2020-02-01 09 am'
- date -d '2020-02-01'
- date -d '2004-02-27 14:19:13.489392193 +0530'
-f, --file=DATEFILE
与 -d 选项一样,解析 DATEFILE 中的每一行,并显示结果日期和时间。
如果 DATEFILE 是 '-',则从标准输入读取。
在处理大批量日期数据时,使用 -f 选项是非常合适的,因为多次调用 date 命令,可能会导致系统开销变得很大。
-I[TIMESPEC], --iso-8601[=TIMESPEC]
使用 ISO 8601 格式显示日期。
使用 TIMESPEC 指定需要包含时间的哪些部分。可选值如下:
- auto:仅打印日期(默认值)。
- hours:打印日期,同时也输出小时。
- minutes:打印日期,同时也输出小时,分钟。
- seconds:打印日期,同时也输出小时,分钟,秒。
- ns:打印日期,小时,分钟,秒。
-r, --reference=FILE
打印 FILE 的最后修改日期和时间。
-R, --rfc-2822
使用 [Internet RFC 2822][2] 格式显示日期。
--rfc-3339=TIMESPEC
使用 [Internet RFC 3339][3] 指定的 TIMESPEC 格式显示日期。
TIMESPEC 可选值如下:
- date:仅打印完整日期,例如:2005-09-14 等价于格式 %Y-%m-%d。
- seconds:打印完整日期和完整时间,使用空格分隔。例如:2005-09-14 00:56:06+05:30(+05:30 是时区)。
- ns:同 seconds 格式一样,并输出纳秒。例如:2005-09-14 00:56:06.998458565+05:30。
-s, --set=STRING
将日期和时间设置为 STRING。关于 STRING 格式,参见 -d 选项。
-u, --utc, --universal
打印格林威治时间。UTC 时间通常也叫格林威治时间。FORMAT
%%
字面量 %
%a
当前语言环境的缩写工作日(例如:Sun)
%A
当前语言环境的全写工作日(例如:Sunday)
%b
当前语言环境的缩写月份名称(例如:Jan)
%B
当前语言环境的全写月份名称(例如:January)
%c
当前语言环境的日期和时间(例如:Thu Mar 3 23:05:25 2005)
%C
世纪;等同于 %Y 省略掉最后两个数字(例如:20)
%d
一个月中的第几天(例如:01)
%D
日期;如同 %m/%d/%y
%e
一个月中的第几天,填补空格;如同 %_d
%F
完整的日期;如同 %Y-%m-%d
%g
ISO 周编号的年份的后两位数字
%G
ISO 周编号的年份;通常,跟 %V 一起使用时才有作用
%h
等同于 %b
%H
小时(00..23)
%I
小时(01..12)
%j
一年中的第几天(001..366)
%k
小时,填补空格( 0..23);等同于 %_H
%l
小时,填补空格( 1..12);等同于 %_I
%m
月份(01..12)
%M
分钟(00..59)
%n
换行
%N
纳秒(000000000..999999999)
%p
相当于英语语言环境下的 AM 或 PM;如果未知则空白
%P
相当于英语语言环境下的 am 或 pm;如果未知则空白
%r
当前语言环境的 12 小时制时间(例如:11:11:04 PM)
%R
24小时制的小时和分钟;等同于 %H:%M
%s
自 1970-01-01 00:00:00 UTC 以来的秒数(就是时间戳)
%S
秒数(00..60)
%t
制表符
%T
时间;等同于 %H:%M:%S
%u
一周中的第几天(1..7);1 代表星期一
%U
一年中的第几周,星期日作为一周中的第一天(00..53)
%V
ISO 周编号,星期一作为一周中的第一天(01...53)
%w
一周中的第几天(0..6);0 代表星期天
%W
一年中的第几周,星期一作为一周中的第一天(00..53)
%x
当前语言环境的日期表示(例如:12/31/99)
%X
当前语言环境的时间表示(例如:23:13:48)
%y
年份的后两位数字(00..99)
%Y
年份
%z
+hhmm 数字时区(例如:-0400)
%:z
+hh:mm 数字数去(例如:-04:00)
%::z
+hh:mm:ss 数字时区(例如:-04:00:00)
%:::z
数字时区,使用 : 以满足精度需求(例如:-04, +05:30)
%Z
字母时区缩写(例如:EDT)示例
# 打印当前时间的时间戳
$ date +%s
1583252677
# 打印指定日期是一年中的第几周
$ date -d '2015-04-20' +%W
16