date命令是显示或设置系统时间与日期。
(1)用法:
用法: date [选项] [参数]
(2)功能:
功能: 根据指定格式显示当前时间或设置系统时间
很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。
(3)选项参数:
1) <+时间日期格式>: 指定显示时使用的日期时间格式;
2) -d<字符串>: 显示字符串所指的日期与时间,字符串前后必须加上双引号;
3) -s<字符串>: 根据字符串来设置日期与时间;(不用加引号)
(4)实例:
1)[root@localhost Document]# date -s 20160530 设置日期和时间(只有root权限才能设置,其他只能查看)
[root@localhost Document]# date -s 20160530 2016年 05月 30日 星期一 00:00:00 PDT [root@localhost Document]# date -s 09:00:00 2016年 05月 30日 星期一 09:00:00 PDT
2)[root@localhost Document]# date 查看当前时间
[root@localhost Document]# date 2016年 05月 30日 星期一 09:01:05 PDT
3)[root@localhost Document]# date 0819150511 第二种设置日期和时间的方式
[root@localhost Document]# date 0819150511 2011年 08月 19日 星期五 15:05:00 PDT [root@localhost Document]# date 0530080016 2016年 05月 30日 星期一 08:00:00 PDT
4)[root@localhost Document]# date +%m%d%H%M%S 第二种显示日期的方式
[root@localhost Document]# date +%m%d%H%M%S 0530080137 [root@localhost Document]# date +%y%m%d%H%M%S 160530080158
5)[root@localhost Document]# date -d "+1 day" +"%y/%m/%d" 显示经过加减法过后的日期
[root@localhost Document]# date -d "1 day ago" +"%Y-%m-%d" //等价于date -d "-1 day ago" +"%Y-%m-%d" 2016-05-29 [root@localhost Document]# date -d "1 day ago" +"%y-%m-%d" 16-05-29 [root@localhost Document]# date -d "1 month ago" +"%y/%m/%d" 16/04/30 [root@localhost Document]# date -d "+1 day" +"%y/%m/%d" 16/05/31 [root@localhost Document]# date -d "+1 month" +"%y-%m-%d" 16-06-30
6)[root@localhost Document]# date -s "2016-05-30 09:10:10" 同时设置日期和时间
[root@localhost Document]# date -s "2016-05-30 09:10:10" 2016年 05月 30日 星期一 09:10:10 PDT [root@localhost Document]# date -s "20160530 09:10:10" 2016年 05月 30日 星期一 09:10:10 PDT [root@localhost Document]# date -s "09:00:00 20160530" 2016年 05月 30日 星期一 09:00:00 PDT [root@localhost Document]# date -s "09:00:00 2016/05/30" 2016年 05月 30日 星期一 09:00:00 PDT [root@localhost Document]# date -s "09:00:00 2016-05-30" 2016年 05月 30日 星期一 09:00:00 PDT
7)格式转换后时间游走:
[root@localhost Document]# date -d "Nov 5, 2018 09:00:00 AM 2 year ago" +"%Y-%m-%d %H:%M.%S" 2016-11-05 09:00.00 [root@localhost Document]# date -d "Oct 30, 2018 09:10:00 AM 2 month ago" +"5Y-%m-%d %H:%M" 5Y-08-30 09:10 [root@localhost Document]# date -d "Oct 30, 2018 09:10:00 AM 2 month ago" +"%Y-%m-%d %H:%M" 2018-08-30 09:10
8)[root@localhost Document]# echo $diff seconds 记录命令花费的时间
[root@localhost Document]# start=$(date +%s) [root@localhost Document]# ls /home |more -10 sunjimeng [root@localhost Document]# end=$(date +%s) [root@localhost Document]# diff=$((end-start)) [root@localhost Document]# echo $diff seconds 40 seconds
(5)日期格式字符串列表
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
月份的英文表示:
【January】 【February】 【March】 【April】 【May】 【June】 【July】 【August】 【September】 【October】 【November】 【December 】