路漫漫其修远兮
吾将上下而求索

linux系统命令:date命令

        

        在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

未经允许不得转载:江哥架构师笔记 » linux系统命令:date命令

分享到:更多 ()

评论 抢沙发

评论前必须登录!