这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战
命令简介
date
命令用于显示或设置系统时间。利用时间格式字符串,用户可以控制时间显示的形式与内容。如果是超级用户,也可以使用 date
命令设置系统时间。其中,format
是时间格式的定义,用于控制时间的输出内容与形式。注意,环境变量 TZ
定义了系统的时区,时间的显示或设置都是基于当前时区的,除非命令行另有指定。如果TZ
变量未设置,命令行也未指定,则以 /etc/localtime
文件为准。
命令格式
date [参数]… [+格式]
复制代码
命令参数
参数 | 解释 |
---|---|
-d str,--date=str | 按照指定的时间描述字符串(如 yesterday、tomorrow 或 next Sunday 等)或者时间格式字符串(如 2012-01-22 10:20:30 或 Sun, 22 Jan 2010 16:21:42 +0800 )显示时间。注意,这里的具体数字并不重要,重要的只是时间的格式与含有的时间元素,最终显示的还是当前时间。 |
-f datef,--file=datef | 从指定的文件中逐行读取时间描述字符串或时间格式字符串,作为 -d 选项的参数,按照要求显示时间。文件可以包含多行字符串,定义多个时间显示形式。 |
-r file,--reference=file | 显示指定文件最近一次的修改时间。 |
-R,--rfc-2822 | 以 RFC 2822 定义的格式显示日期和时间,如 Sun, 22 Jan 2010 12:34:56 +0800 。 |
-s str,--set=str | 按照指定的时间格式设置时间,例如,使用 [cc]yy-mm-dd 、[cc]yymmdd 或 [cc]yy/mm/dd 等设置日期,使用 hh:mm[:ss] 等设置时间。也可以组合在一起,同时设置日期与时间,如 [cc]yy-mm-ddhh:mm 。注意,组合设置日期与时间时,前后需要加引号。 |
-u,--utc,--universal | 显示或设置协调世界时(UTC),即格林威治时间(GMT)。 |
--rfc-3339=time | 以 RFC 3339 定义的格式显示日期和时间。其中的时间参数可以是 date(仅显示日期)、 seconds(显示日期、时间与时区)或 ns(同 seconds,但在秒后增加时间精度)。 |
时间格式
格式 | 解释 |
---|---|
%% | 百分号 % 文字本身。 |
%n | 换行符。 |
%t | 制表符。 |
%a | 本地语言环境的星期缩写,如 Sun 或日。 |
%A | 本地语言环境的星期全称,如 Sunday 或星期日。 |
%b | 本地语言环境的月份缩写,如 Jan。 |
%B | 本地语言环境的月份全称,如 January 或一月。 |
%c | 本地语言环境的日期与时间,如 Sun Jan 22 23:05:252010 或 2012 年 01 月 15 日 星期日 21 时 43 分 30 秒。 |
%C | 世纪。类似于 %Y ,忽略最后两位数字,如 20。 |
%d | 一月中的第几天。 |
%D | 日期,相当于 %m/%d/%y 。 |
%e | 一月中的第几天。相当于 %_d ,即使用空格替代前置 0。 |
%F | 完整的日期表示,相当于 %Y-%m-%d 。 |
%g | ISO 标准的年份最后两位数字,通常与 %V 一起使用。 |
%G | ISO 标准的年份,通常与 %V 一起使用。 |
%h | 相当于 %b ,显示月份的缩写。 |
%H | 24 小时制(0~23)的小时。 |
%I | 12 小时制(1~12)的小时。 |
%j | 一年中的第几天(001~366)。 |
%k | 24 小时制(0~23)的小时。 |
%l | 12 小时制(1~12)的小时。 |
%m | 月(1~12)。 |
%M | 分(00~59)。 |
%N | 毫微秒(000000000~999999999)。 |
%p | 本地语言环境的上下午表示,如 AM、PM、上午或下午等。 |
%P | 类似于 %p ,但采用小写字母。 |
%r | 本地语言环境的 12 小时制时钟时间,如11:11:04 PM ,或 下午 09 时 29 分 30 秒 。 |
%R | 24 小时制的小时与分,相当于 %H:%M 。 |
%s | 从 UNIX 纪元(1970-01-01 00:00:00 UTC)算起的秒数。 |
%S | 秒(00~60)。 |
%T | 时间,相当于 %H:%M:%S 。 |
%u | 周(1~7),其中 7 表示星期日。 |
%U | 一年中的第几周(00~53),其中星期日作为每周的第一天。 |
%V | ISO 标准的第几周(01~53),其中星期一作为每周的第一天。 |
%w | 周(0~6),其中 0 表示星期日。 |
%W | 一年中的第几周(00~53),其中星期一作为每周的第一天。 |
%x | 本地语言环境的日期表示,如 01/15/12 或 2012 年 01 月 15 日。 |
%X | 本地语言环境的时间表示,如 21:26:06 或 21 时 26 分 06 秒。 |
%y | 年份的最后两位数字(00~99),如 12。 |
%Y | 年,如 2012。 |
%z | 数字形式 +hhmm 表示的时区,如 +0800 。 |
%:z | 数字形式 +hh:mm 表示的时区,如 +08:00 。 |
%::z | 数字形式 +hh:mm:ss 表示的时区,如 +08:00:00 。 |
%:::z | 数字形式的时区,增加必要的精度,如 +08 或 +05:30 等。 |
%Z | 时区的英文缩写,如 CST 。 |
应用实例
- 设置系统时间
date -s "20211117 11:30"
复制代码
- 使用格式字符串,模拟实现
date
命令显示的系统时间。
date "+%x +%A +%T +%Z"
复制代码
参考文档
- date命令
- 《Linux 常用命令简明手册》—— 邢国庆编著