找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2198

积分

0

好友

316

主题
发表于 前天 00:18 | 查看: 7| 回复: 0

date 命令用于打印或设置系统日期和时间。

# 显示当前日期时间
$ date
Fri 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

时间转换说明符

说明符 描述 备注
%H 小时,24 小时制(0023
%I 小时,12 小时制(0112
%k 小时,24 小时制,空格填充(023 等同于 %_H,GNU 扩展
%l 小时,12 小时制,空格填充(112 等同于 %_I,GNU 扩展
%M 分钟(0059
%N 纳秒(000000000999999999 GNU 扩展
%p 本地环境的 AM/PM 对应表示(如AMPM 中午视为PM,午夜视为AM
%P 类似 %p,但为小写 GNU 扩展
%r 本地环境的 12 小时制时间(如,11:11:04 PM
%R 24 小时制的小时和分钟,等同于 %H:%M
%s 自纪元(1970-01-01 00:00 UTC)以来的秒数 通常不计算闰秒,GNU 扩展
%S 秒(0060 若支持闰秒,可能为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 不可确定时为空

日期转换说明符

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

字面量转换说明符

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

填充与标志

默认行为:数字字段默认用零左填充(如月份%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 扩展。

实用示例

显示日期时间

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" # 完整月份
January

date +"%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_

希望这篇关于 date 命令的详细指南能帮助你更好地在 Linux 环境中处理时间日期。如果你想了解更多关于系统管理或编程的基础知识,欢迎访问云栈社区进行交流和学习。




上一篇:SQL去重方法全解析:从DISTINCT到窗口函数的实战指南与应用场景
下一篇:开源多数据库客户端Chat2DB:支持AIGC自然语言转SQL与团队协作
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-14 18:54 , Processed in 0.492622 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表