linux之date命令

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修改文件并保存即会修改时间

你可能感兴趣的:(Linux,linux)