说明

  date命令用于显示当前的系统时间或设置系统时间

格式

  date [option] [+format]

参数说明

必要参数:

  • %%:显示字符%
  • %a:星期几的缩写(Sun..Sat)
  • %A:星期几的完整名称(Sunday…Saturday)
  • %b:月份的缩写(Jan..Dec)
  • %B:月份的完整名称(January..December)
  • %c:日期与时间。只输入date指令也会显示同样的结果
  • %C:世纪(年份除100后去整) [00-99]
  • %d:日期(以01-31来表示)。
  • %D:日期(含年月日)。
  • %e:一个月的第几天 ( 1..31)
  • %F:日期,同%Y-%m-%d
  • %g:年份(yy)
  • %G:年份(yyyy)
  • %h:同%b
  • %H:小时(00..23)
  • %I:小时(01..12)
  • %j:一年的第几天(001..366)
  • %k:小时( 0..23)
  • %l:小时( 1..12)
  • %m:月份(01..12)
  • %M:分钟(00..59)
  • %n:换行
  • %N:纳秒(000000000..999999999)
  • %p:AM or PM
  • %P:am or pm
  • %r:12小时制时间(hh:mm:ss [AP]M)
  • %R:24小时制时间(hh:mm)
  • %s:从00:00:00 1970-01-01 UTC开始的秒数
  • %S:秒(00..60)
  • %t:制表符
  • %T:24小时制时间(hh:mm:ss)
  • %u:一周的第几天(1..7); 1 表示星期一
  • %U:一年的第几周,周日为每周的第一天(00..53)
  • %V:一年的第几周,周一为每周的第一天 (01..53)
  • %w:一周的第几天 (0..6); 0 代表周日
  • %W:一年的第几周,周一为每周的第一天(00..53)
  • %x:日期(mm/dd/yy)
  • %X:时间(%H:%M:%S)
  • %y:年份(00..99)
  • %Y:年份 (1970…)
  • %z:RFC-2822 风格数字格式时区(-0500)
  • %Z:时区(e.g., EDT), 无法确定时区则为空

选择参数:

  • -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
  • -s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
  • -u  显示UTC
示例

1、常用参数进行测试

[root@localhost ~]# date +%y #显示年(短格式)
18
[root@localhost ~]# date +%Y #显示年(长格式)
2018
[root@localhost ~]# date +%m #显示月
05
[root@localhost ~]# date +%d #显示日
24
[root@localhost ~]# date +%H #显示小时
10
[root@localhost ~]# date +%M #显示分钟
11
[root@localhost ~]# date +%S #显示秒
57
[root@localhost ~]# date +%F #显示年-月-日
2018-05-24
[root@localhost ~]# date +%T #显示时-分-秒
10:12:04
[root@localhost ~]# date +"%F %T" #显示年月日时分秒
2018-05-24 10:12:24
[root@localhost ~]# date "+%F %T" #显示年月日时分秒
2018-05-24 10:21:37

2、-d参数使用

[root@localhost ~]# date +%F #当前的年-月-日
2018-05-24
[root@localhost ~]# date +%F -d "-1day" #显示昨天(简介语法)
2018-05-23
[root@localhost ~]# date +%F -d "yesterday" #显示昨天(英文写法)
2018-05-23
[root@localhost ~]# date +%F -d "-2day" #显示前天
2018-05-22
[root@localhost ~]# date +%F -d "+1day" #显示明天
2018-05-25
[root@localhost ~]# date +%F -d "tomorrow"#显示明天
2018-05-25
[root@localhost ~]# date +%F -d "+2day" #显示后天
2018-05-26
[root@localhost ~]# date +%F -d "1month" #显示下月后
2018-06-24
[root@localhost ~]# date +%F -d "1year" #显示1年后
2019-05-24
[root@localhost ~]# date +%F -d "+24hour" #当前时间加24小时
2018-05-25
[root@localhost ~]# date +%F -d "14400min"#当前时间加14400分钟
2018-06-03
[root@localhost ~]# date +%F -d "-14400min"#当前时间减14400分钟
2018-05-14

3、时间格式转换

[root@localhost ~]# date -d "Thu May 24 10:22:11 EDT 2018" "+%F %T"
2018-05-24 10:22:11

4、-s参数设置时间

[root@localhost ~]# date -s 20180526 #设置成20180526,具体时间为00:00:00
Sat May 26 00:00:00 EDT 2018
[root@localhost ~]# date "+%F %T"
2018-05-26 00:00:01

[root@localhost ~]# date -s 09:02:30 #设置时间为 09:02:30,不会对日期做修改
Sat May 26 09:02:30 EDT 2018
[root@localhost ~]# date "+%F %T"
2018-05-26 09:02:31

[root@localhost ~]# date -s "09:03:30 20180526" #设置日期和时间,日期可以采用不同格式
Sat May 26 09:03:30 EDT 2018
[root@localhost ~]# date "+%F %T"
2018-05-26 09:03:33
[root@localhost ~]# date -s "09:03:30 2018/05/26"
Sat May 26 09:03:30 EDT 2018
[root@localhost ~]# date "+%F %T"
2018-05-26 09:03:31
[root@localhost ~]# date -s "09:03:30 2018-05-26"
Sat May 26 09:03:30 EDT 2018
[root@localhost ~]# date "+%F %T"
2018-05-26 09:03:31

5、换行显示日期和时间

[root@localhost ~]# date +%F%n%T
2018-05-26
09:09:53