在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便
1.命令格式:
date [OPTION]… [+FORMAT]
2.命令功能:
date 可以用来显示或设定系统的日期与时间。
3.命令参数:
选项
-d, --date=STRING display time described by STRING, not ‘now’, #显示特定的时间,比如下个星期这个点时间是什么,上个月这个点的时间是什么,9月20号是星期几,等等,字符串前后必须加上双引号 -s, --set=STRING set time described by STRING。根据后面的字符串设置时间,字符串前后必须加上双引号
因为格式比较多,这里每个格式显示来一个示例,比较容易理解
最常用的
$ date +"%Y-%m-%d %H:%M:%S" 2023-08-11 04:03:22
4、分钟和秒
%M 分钟(以00-59来表示) %P AM或PM %r 时间(含时分秒,小时以12小时AM/PM来表示) %s 总秒数。起算时间为1970-01-01 00:00:00 UTC %S 秒(以本地的惯用法来表示) %T 时间(含时分秒,小时以24小时制来表示)
示例
[root@localhost ~]#date Mon May 8 00:50:03 CST 2017 [root@localhost ~]#date +%M 50 [root@localhost ~]#date +%P am [root@localhost ~]#date +%r 12:50:23 AM [root@localhost ~]#date +%S 31 [root@localhost ~]#date +%T 00:50:34 [root@localhost ~]#date +%s 1494175827
5、小时对比
%H 小时(以00-23来表示) %I 小时(以01-12来表示) %k 小时(以0-23来表示) %l 小时(以1-12来表示)
示例
[root@localhost ~]#date Mon May 8 00:43:19 CST 2017 [root@localhost ~]#date +%H 00 [root@localhost ~]#date +%I 12 [root@localhost ~]#date +%k 0 [root@localhost ~]#date +%l 12
6、星期和月份
%a 星期的缩写 %A 星期的完整名称 %b 月份英文名的缩写 %B 月份的完整英文名称
示例
[root@localhost ~]#date Mon May 8 00:43:19 CST 2017 [root@localhost ~]#date +%a Mon [root@localhost ~]#date +%A Monday [root@localhost ~]#date +%b May [root@localhost ~]#date +%B May
7、月和年表示
%d 日期(以01-31来表示) %D 日期(含年月日) %j 该年中的第几天 %m 月份(以01-12来表示) %U 该年中的周数 %w 该周的天数,0代表周日,1代表周一,依次类推 %x 日期(以本地的惯用法来表示) %y 年份(以00-99来表示) %Y 年份(以四位数来表示) %n 在显示时,插入新的一行 %t 在显示时,插入tab
示例
[root@localhost ~]#date Mon May 8 00:54:37 CST 2017 [root@localhost ~]#date +%d 08 [root@localhost ~]#date +%D 05/08/17 [root@localhost ~]#date +%j 128 [root@localhost ~]#date +%m 05 [root@localhost ~]#date +%U 19 [root@localhost ~]#date +%w 1 [root@localhost ~]#date +%x 05/08/2017 [root@localhost ~]#date +%y 17 [root@localhost ~]#date +%Y 2017
8、-d选项
date 命令的另一个扩展是 -d 选项,该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期。-d 选项还可以告诉您,相对于当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为 -d 选项的参数,就可以完成这项任务。
根据指定的格式和时间显示,前面的是显示格式,后面的是要显示的某一天,多用在定时任务,比如每一天处理两天前的数据
[root@localhost ~]#date +%Y%m%d 20170508 [root@localhost ~]#date +%Y%m%d --date='+1 day' 20170509 [root@localhost ~]#date +%Y%m%d --date='-1 day' 20170507 [root@localhost ~]#date +%Y%m%d --date='-9 day' 20170429 [root@localhost ~]#date +%Y%m%d --date='-1 month' 20170408 [root@localhost ~]#date +%Y%m%d --date='+2 month' 20170708 [root@localhost ~]#date +%Y%m%d --date='-1 year' 20160508 [root@localhost ~]#date +%Y%m%d --date='+2 year' 20190508 [root@localhost ~]#date +%Y%m%d --date='2 weeks' 20170522 [root@localhost ~]#date +%Y%m%d --date='next day' 20170509 [root@localhost ~]#date +%Y%m%d --date='tomorrow' 20170509 [root@localhost ~]#date +%Y%m%d --date='yesterday' 20170507
9、将utc时间显示为正常时间
[root@localhost ~]#date +%s 1494177672 [root@localhost ~]#date -d @1494177672 Mon May 8 01:21:12 CST 2017
10、设定时间
date -s
date -s //设置当前时间,只有root权限才能设置,其他只能查看。 date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00 date -s 01:01:01 //设置具体时间,不会对日期做更改 date -s "01:01:01 2008-05-23" //这样可以设置全部时间 date -s "01:01:01 20080523" //这样可以设置全部时间 date -s "2008-05-23 01:01:01" //这样可以设置全部时间 date -s "20080523 01:01:01" //这样可以设置全部时间
11、设置硬件时间
Centos系统时间和硬件时间。修改了其一是没有办法奏效,必须两者都更改。 1.date {查看目前本地的时间} 2.hwclock --show {查看硬件的时间} 3.如果硬件的时间是对不上,那就对硬件的时间进行修改、 4.hwclock --set --date '014-12-15 15:15:15' {设置硬件时间} 5.hwclock --hctosys {设置系统时间和硬件时间同步} 6.clock -w {保存时钟} 注:hwclock = hardware clock 硬件时间和系统时间的同步 按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock或clock命令实现同步。 硬件时钟(是标准的)系统时钟与其同步:# hwclock --hctosys(hc代表硬件时间,sys代表系统时间)或者# clock --hctosys 系统时钟(是标准的)硬件时钟与其同步:# hwclock --systohc或者# clock --systohc
–
–
–
评论前必须登录!
注册