当前位置:首页>Linux>Linux 通过 date 命令打印日期和时间

Linux 通过 date 命令打印日期和时间

  • 2026-10-21 13:29:39
Linux 通过 date 命令打印日期和时间

date[1] 命令打印或设置系统日期和时间

# 显示当前日期时间$ dateFri Jan  9 17:10:15 CST 2026

如果提供的参数以+开头,date 会以该参数定义的格式(类似于 strftime 函数的格式)打印当前日期和时间(或由 --date 选项指定的日期和时间)。格式字符串中除了以%开头的转换说明符外,其他字符会保持不变。

$ date "+%Y-%m-%d %H:%M:%S"2026-01-09 17:12:03$ date '+周末愉快,今天是%F'周末愉快,今天是2026-01-10

1. 时间转换说明符

说明符
描述
备注
%H
小时,24 小时制(00…23)
%I
小时,12 小时制(01…12)
%k
小时,24 小时制,空格填充(0…23)
等同于 %_H,GNU 扩展
%l
小时,12 小时制,空格填充(1…12)
等同于 %_I,GNU 扩展
%M
分钟(00…59)
%N
纳秒(000000000…999999999)
GNU 扩展
%p
本地环境的 AM/PM 对应表示(如AM或PM)
中午视为PM,午夜视为AM
%P
类似 %p,但为小写
GNU 扩展
%r
本地环境的 12 小时制时间(如,11:11:04 PM)
%R
24 小时制的小时和分钟,等同于 %H:%M
%s
自纪元(1970-01-01 00:00 UTC)以来的秒数
通常不计算闰秒,GNU 扩展
%S
秒(00…60)
若支持闰秒,可能为60
%T
24 小时制的小时、分钟、秒,等同于 %H:%M:%S
%X
本地环境的时间表示(如,23:13:48)
%z
4 位数字时区(如-0600或+0530),不可确定时为-0000
数值偏移为零且缩写以-开头,则视为不可确定
%:z
带冒号的数字时区(如-06:00或+05:30)
不可确定时为-00:00,GNU 扩展
%::z
带冒号、精确到秒的数字时区(如-06:00:00)
不可确定时为-00:00:00,GNU 扩展
%:::z
带冒号、最小精度的数字时区(如-06或+05:30)
不可确定时为-00,GNU 扩展
%Z
字母时区缩写(如CST)
不可确定时为空

2. 日期转换说明符

说明符
描述
备注
%a
本地环境的缩写星期名(如Sun)
%A
本地环境的完整星期名,长度可变(如Sunday)
%b
本地环境的缩写月份名(如Jan)
%B
本地环境的完整月份名,长度可变(如January)
%c
本地环境的日期和时间(如Thu Mar 3 23:05:25 2020)
%C
世纪(年份的前两位数字),如2019→20
通常至少两位
%d
月份中的日期,两位数(01…31)
%D
日期,等同于 %m/%d/%y
在非美国地区易混淆
%e
月份中的日期,空格填充,等同于 %_d
%F
ISO 8601 完整日期,如%Y-%m-%d
标准格式,易于排序
%g
ISO 周数对应的年份,不含世纪(00…99)
同%y,但可能跨年,有歧义
%G
ISO 周数对应的完整年份
通常与 %V 一起使用
%h
同 %b
%j
年份中的日期(001…366)
%m
月份(01…12)
%q
季度(1…4)
%u
星期几(星期一=1,1…7)
%U
年份周数,以周日为一周起始(00…53)
%V
ISO 周数,以周一为一周起始(01…53)
%w
星期几(周日=0,0…6)
%W
年份周数,以周一为一周起始(00…53)
%x
本地环境的日期表示(如12/31/99)
有歧义
%y
年份最后两位(00…99)
有歧义
%Y
完整年份,至少 4 位(如0000,2024)
年份0000在0001之前

3. 字面量转换说明符

说明符
描述
%%
一个百分号字面量
%n
换行符
%t
水平制表符

4. 填充与标志

默认行为:数字字段默认用零左填充(如月份%m输出01)。例外:纳秒(%N)右填充,纪元秒(%s)不填充。

标志
描述
备注
-
不填充该字段
GNU 扩展。%-N自适应精度
_
用空格填充
GNU 扩展
0
用零填充
+
用零填充,且年份/世纪数过大时前缀+
支持 ISO 8601 未来日期
^
尽可能使用大写字母
GNU 扩展
#
尽可能使用相反的大小写
GNU 扩展

修饰符(用于%后):

  • E:使用本地环境的替代日期/时间表示(适用于%c, %C, %x, %X, %y, %Y)。
  • O:使用本地环境的替代数字符号(适用于数字说明符)。

注意:POSIX 仅对 %C、%F、%G、%Y(无修饰符时)的标志和字段宽度有明确规定。其他组合均为 GNU 扩展。

5. 实用示例

显示日期时间

date "+%Y-%m-%d %H:%M:%S"# 或date "+%F %T"2026-01-09 18:13:21

仅显示日期

date "+%Y-%m-%d"# 或date "+%F"2026-01-09

仅显示时间

date "+%H:%M:%S"# 或date "+%T"18:13:21

显示月份名称

date +"%B"# 完整月份Januarydate +"%b"# 缩写月份Jan

自定义中文格式

date +"%Y年%m月%d日 %H时%M分%S秒"2026年01月09日 17时31分56秒

参考资料

[1] 

date: https://www.gnu.org/software/coreutils/manual/html_node/date-invocation.html

最新文章

随机文章