date 命令用于 显示 或 设置系统的时间或日期。
格式:date [参数] [+日期格式]
注意: date后面有一个空格,否则无法识别命令,shell对空格是很严格的。
1、Linux date命令参数
日期时间格式符号:
%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%P AM或PM。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 数字方式显示时区。
%a 星期几 ,缩写(Sun…Sat)。
%A 星期几 ,完整英文星期(Sunday…Saturday)
%b 月份 (Jan…Dec)
%B 月份 (January…December)
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日(以01-31来表示)。
%D 日期(含年月日)。以MM/DD/YY显示日期。%F 日期(含年月日)。以YYYY-MM-DD显示日期.
%j 一年中的第几天 (001…366)。
%m 月份(以01-12来表示)。
%U 该年中的周数。%u 一周中的第几天 (1…7) (1是星期一)
%w 该周的天数,0代表周日,1代表周一,以此类推。%W 一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)
%x 日期(以本地的惯用法来表示)。以MM/DD/YYYY显示日期.
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)。
DD 日期(必要)。
hh 小时(必要)。
mm 分钟(必要)。
CC 年份的前两位数(选择性)。
YY 年份的后两位数(选择性)。
ss 秒(选择性)。选择参数:
-d <字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s <字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u 显示GMT。即显示或设置全球时间(格林威治时间)。
-f
文件路径 作用:可将-d参数指定的运算规则写入文件中,通过-f参数指定文件路径,date命令逐行读取该文件,并按照此文件指定的运算规则输出运算后的时间。-r 文件路径 作用:显示指定文件最后被修改的时间。
--help 在线帮助。
--version 显示版本信息。
2、示例:
2.1、-s, --set 设置时间
# 设置当前时间,只有root权限才能设置,其他只能查看。# 设置成20080523,这样会把具体时间设置成空00:00:00
date -s 20080523# 设置具体时间,不会对日期做更改
date -s 01:01:01 # 这样可以设置全部时间,示例1
date -s "01:01:01 2008-05-23"# 这样可以设置全部时间,示例2
date -s "01:01:01 20080523"# 这样可以设置全部时间,示例3
date -s "2008-05-23 01:01:01"# 这样可以设置全部时间,示例4
date -s "20080523 01:01:01"
2.2、-d, --date 显示时间加减后结果
格式: date -d '运算规则'
作用:指定时间运算规则,date会将当前时间做指定的运算,然后输出运算后的时间
# 输出3分钟前的时间 (3天day、月month、年year前同理)
date -d '3 minutes ago'
date -d '-3 minutes'# 输出3分钟后的时间(3天、月、年前同理)
date -d '3 minutes'# 此处时间的单复数都可以,效果一样
date -d '-3 minutes'
date -d '-3 minute'# 显示后一天的日期
date +%Y%m%d --date "+1 day"# 显示前一天的日期
date +%Y%m%d --date "-1 day"# 显示上一月的日期
date +%Y%m%d --date "-1 month"# 显示下一月的日期
date +%Y%m%d --date "+1 month"# 显示前一年的日期
date +%Y%m%d --date "-1 year"# 显示下一年的日期
date +%Y%m%d --date "+1 year"
2.3、-f, --file 批量运算
格式:date -f 文件路径
作用:可将-d参数指定的运算规则写入文件中,通过-f参数指定文件路径,date命令逐行读取该文件,并按照此文件指定的运算规则输出运算后的时间。
# datefile文件内容
1 years ago
-1 year
-3 month
-2 days
1 year
2 month
# 执行命令
date -f datefile
# 输出结果
2022年 10月 07日 星期五 15:09:35 CST
2022年 10月 07日 星期五 15:09:35 CST
2023年 07月 07日 星期五 15:09:35 CST
2023年 10月 05日 星期四 15:09:35 CST
2024年 10月 07日 星期一 15:09:35 CST
2023年 12月 07日 星期四 15:09:35 CST
2.4、-r --reference 显示文件修改时间
格式:date -r 文件路径
作用:显示指定文件最后被修改的时间。
$ date -r datefile
2023年 10月 07日 星期六 15:09:21 CST$ date -r datefile "+%Y-%m-%d %H:%m:%S"
2023-10-07 15:10:21
注:cat查看文件不影响修改时间,vim修改文件并保存即会修改时间