date命令


功能说明

    显示或修改系统时间与日期,只有超级用户才能使用date命令设置时间。一般用户只能查看。用法如下:

  date [OPTION]... [+FORMAT]:显示

date命令的选项及说明

  • -s--set:设置系统时间

  • -d--date:显示描述的日期

格式参数

格式含义
%H显示小时(表示范围00-23)
%I显示小时(表示范围00-12)
%k显示小时(表示范围0-23)
%l显示小时(表示范围0-12)
%M显示分钟(以00-59显示)
%S显示秒种(以00-59显示)
%p
显示是AM或PM
%r显示时间,格式为hh:mm:ss AM或PM,其中hh代表小时,mm代表分钟,ss代表秒
%T
显示时间,格式为hh:mm:ss
%x
显示年份和日期,格式为mm/dd/yyyy,yyyy表示年份
%X显示时间格式,相当于%H:%M:%S的组合
%a显示星期几
%b或%B显示月份,%b是月的简称,%B是显示月的全称
%m显示月份(表示格式01-12)
%Z显示时区
%d
显示一个月的第几天
%D显示年份和月份,格式为mm/dd/yy,yy表示年份后两个数字
%Y或%y显示年份,%Y显示4位年份,%y显示2位年份
%c显示日期和时间格式,相当于“%a%d%b%Y%r%Z”的组合

date [MMDDhhmm[[CC]YY][.ss]]:设置

    MM:月份

    DD:几号

    hh:小时

    mm:分钟

    YY:两位年份

    CCYY:四位年份

    .ss:秒钟

以下是四种格式:

格式:date mmddHHMM               就是“月日时分”

格式:date mmddHHMMYYYY

格式:date mmddHHMM.SS

格式:date mmddHHMMYYYY.SS

设置当前日期时间,只有root用户才能执行,执行完之后还要执行 clock -w 来同步到硬件时钟。

mm为月份,dd为日期,HH为小时数,MM为分钟数,YYYY为年份,SS为秒数。


示例

    手动更改时间

[root@c7 ~]# date +"%Y-%m-%d %H:%M:%S"       #使用格式参数,显示时间

2016-11-07 09:29:21

[root@c7 ~]# date -s "20161108 13:50"        #也可以日期和时间分开设置如date -s 13:50

2016年 11月 08日 星期二 13:50:00 CST

[root@c7 ~]# date

2016年 11月 08日 星期二 13:50:22 CST

[root@c7 ~]# date -s "20161108 14:04:01"     #精确到秒的设置方法

2016年 11月 08日 星期二 14:04:01 CST

[root@c7 ~]# hwclock -w

注:修改完时间后,使用clock -w,把时间同步到硬件,详细说明在后面有介绍

    打印3天前的日期

[root@c7 ~]# date +%F

2016-11-08

[root@c7 ~]# date +%F -d '3 day ago'

2016-11-05


hwclock,clock:硬件时钟


功能说明

    显示或设定硬件时钟

-s, --hctosys:以硬件为准,把系统调整为与硬件时间相同

-w, --systohc:以系统为准,把硬件时间调整为与系统时间相同

Linux分为硬件时钟和系统时钟,硬件时钟就是主板上的钮扣电池来供电。

Linux:系统启动时从硬件读取日期和时间信息:读取完信息以后,就不再与硬件相关联

date用来查看系统时钟

clock用来查看硬件时钟


示例

    clock和hwclock是同一个东西,可以看出,clock是hwclock的硬链接

[root@c7 shell]# which clock

/usr/sbin/clock

[root@c7 shell]# file /usr/sbin/clock

/usr/sbin/clock: symbolic link to `hwclock'

    通过man hwclock可以获得参数的含义

-s, --hctosys             #以硬件为准,把系统时间调整为和硬件一样

              Set the System Time from the Hardware Clock.

-w, --systohc             #以系统为准,把系统时间调整为和系统一样

              Set the Hardware Clock to the current System Time.


    以系统时间为准,更改硬件时间,如下图

[root@www ~]# clock       #查看当前硬件时间

Sat 02 Apr 2016 08:24:02 PM CST  -0.282350 seconds

[root@www ~]# date        #查看当前系统时间

Sat Apr  2 20:27:22 CST 2016

[root@www ~]# clock -w    #以系统为准,把系统时间调整为和系统一样

[root@www ~]# clock       #验证当前硬件时间

Sat 02 Apr 2016 08:28:11 PM CST  -0.656874 seconds

[root@www ~]# date        #验证当前系统时间

Sat Apr  2 20:28:14 CST 2016