5.6 date:显示与设置系统时间

date命令

用于显示当前的系统时间或设置系统时间。 date [选项] +[日期格式]  

date命令的参数选项及说明

OPTION参数选项
-d 时间字符串 显示指定字符串所描述的时间,而非当前时间 -f 时间文件 从日期文件中按行读入时间描述 -r 文件 显示指定文件的最后修改时间 -s 日期时间 设置系统时间 -u 显示或设置UTC时间 FORMAT日期格式 %% 输出字符% %a 星期名缩写(Tue代表星期二) %A 星期名全称(Tuesday代表星期二) %b 月名缩写(Aug代表八月) %B 月名全称(August代表八月) %c 日期和时间(Tue 18 Aug 201502:28:22 PM CST) %C 世纪 %d 每月的第几天 %D 等于%m/9%d/%y(08/18/15) %e 每月的第几天 %F 完整日期格式,等价于%Y-%m-%d(2015-08-18) %g 年份的最后两位数字(15) %G 年份(2015) %h 月名缩写,等于%b %H 24小时制(00-23) %I 12小时制(00-12) %j 一年的第几天(001-366) %k 24小时制(0-23),格式和%H不同 %l 12小时制(1-12) %m 月份(01-12) %M 分(00-59) %n 换行 %N 纳秒(000000000-999999999) %p “上午”或“下午”,未知时输出为空(AM/PM) %P 与%p类似,但是输出的是小写字母(am/pm) %r 当前时区下的12小时制时间(02:30:27PM) %R 24小时制的时和分,等价于%H:%M(14:30) %s 自UTC时间1970-01-0100:00:00以来所经过的秒数(1439879439) %S 秒(00-60) %t 输出刺表符Tab %T 时间,等于%H:%M:%S(14:30:50) %u 星期,1代表星期一 %U 一年中的第几周,以周日为每星期的第一天(00-53) %V ISO-8601格式规范下一年中的第几周,以周一为每星期的第一天(01-53) %w 一星期中的第几日(0-6),0代表周一 %W 一年中的第几周,以周一为每星期的第一天(00-53) %x 日期(08/18/2015) %X 时间(02:31:29PM) %y 年份的最后两位(00..99) %Y 年份2015 %z 时区+0800 %:z 时区+08:00 %::z 时区+08:00:00 %:::z 时区+08 %Z 字母格式时区(CST)

 

   

常用时间格式测试

[root@cs6-mini ~]# date +%y
19
[root@cs6-mini ~]# date +%Y
2019
[root@cs6-mini ~]# date +%m
05
[root@cs6-mini ~]# date +%d
15
[root@cs6-mini ~]# date +%H
15
[root@cs6-mini ~]# date +%M
14
[root@cs6-mini ~]# date +%S
54
[root@cs6-mini ~]# date +%F
2019-05-15
[root@cs6-mini ~]# date +%T
15:15:08

通过参数-d显示指定字符串所描述的时间示例

[root@cs6-mini ~]# date +%F -d "-1day"
2019-05-14
[root@cs6-mini ~]# date +%F -d "yesterday"
2019-05-14
[root@cs6-mini ~]# date +%F -d "-2day"
2019-05-13
[root@cs6-mini ~]# date +%F -d "+1day"
2019-05-16
[root@cs6-mini ~]# date +%F -d "tomorrow"
2019-05-16
[root@cs6-mini ~]# date +%F -d "+2day"
2019-05-17
[root@cs6-mini ~]# date +%F -d "1month"
2019-06-15
[root@cs6-mini ~]# date +%F -d "1year"
2020-05-15
这里的+号表示未来,-号表示过去,day表示日,year表示年,month表示月。
[root@cs6-mini ~]# date +%F -d "24hour"
2019-05-16
[root@cs6-mini ~]# date +%F -d "12324min"
2019-05-24
[root@cs6-mini ~]# date +%F -d "-123min"
2019-05-15
这里的hour表示小时,min表示分。

时间格式转换例子

[root@cs6-mini ~]# date -d "Thu Jul 6  21:41:16 CST 2019" "+%Y-%m-%d %H:%M:%S"
2019-07-06 21:41:16
[root@cs6-mini ~]# vi time_test.log
[root@cs6-mini ~]# cat time_test.log
Sat May 19 13:40:02 CST 2015 is 13213213
Sat May 19 19:37:43 CST 2015 is 1012122
Sat May 19 12:40:03 CST 2015 is 13213213
sat May 19 19:37:42 CST 2015 is 1012122
Sat May 19 13:40:03 CST 2015 is 13213213
Sat May 19 19:37:03 CST 2015 is 1012122
[root@cs6-mini ~]# awk -F "is" '{print "echo $(date -d \""$1"\"  \"+%F %T\")",$2}'  time_test.log
echo $(date -d "Sat May 19 13:40:02 CST 2015 "  "+%F %T")  13213213
echo $(date -d "Sat May 19 19:37:43 CST 2015 "  "+%F %T")  1012122
echo $(date -d "Sat May 19 12:40:03 CST 2015 "  "+%F %T")  13213213
echo $(date -d "sat May 19 19:37:42 CST 2015 "  "+%F %T")  1012122
echo $(date -d "Sat May 19 13:40:03 CST 2015 "  "+%F %T")  13213213
echo $(date -d "Sat May 19 19:37:03 CST 2015 "  "+%F %T")  1012122
[root@cs6-mini ~]# awk -F "is" '{print "echo $(date -d \""$1"\"  \"+%F %T\")",$2}'  time_test.log |bash
2015-05-19 13:40:02 13213213
2015-05-19 19:37:43 1012122
2015-05-19 12:40:03 13213213
2015-05-19 19:37:42 1012122
2015-05-19 13:40:03 13213213
2015-05-19 19:37:03 1012122

通过参数-s设定时间

[root@cs6-mini ~]# date -s 20170505
Fri May  5 00:00:00 CST 2017
[root@cs6-mini ~]# date
Fri May  5 00:00:01 CST 2017
[root@cs6-mini ~]# date -s "00:12:23"
Fri May  5 00:12:23 CST 2017
[root@cs6-mini ~]# date -s "00:12:23 20190304"
Mon Mar  4 00:12:23 CST 2019
[root@cs6-mini ~]# date -s "00:12:23 2019-03-04"
Mon Mar  4 00:12:23 CST 2019
[root@cs6-mini ~]# date -s "00:12:23 2019/03/04"
Mon Mar  4 00:12:23 CST 2019
显示时间后换行,再显示日期。
[root@cs6-mini ~]# date +%T%n%D
00:13:08
03/04/19
[root@cs6-mini ~]# date +%D
03/04/19

 

上一篇:5.8-12 watch、which、whereis、locate、updatedb


下一篇:《HelloGitHub》第 69 期