最近在linux上因为系统时间和硬件时间,出了不少问题,所以想详细了解一下linux时间,希望能对和我有同样问题的童鞋有所帮助.有问题,找"男人"!这是我刚接触linux时,老师经常说的一句话。此"男人",非彼男人也,不过此"男人"和男人的功能一样,都非常强大,嘿嘿。闲话少说,进入正题。

       Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock。

我们先来用一下男人,man  date,详细内容如下:

一、date(日期)

NAME(名字)

        date - print or set the system date and time

        date - 打印或者设置系统日期和时间

SYNOPSIS(语法)

      date [OPTION]... [+FORMAT]

      date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

DESCRIPTION(描述):

Display the current time in the given FORMAT, or set the system date.#显示当前你要求格式的时间或者设置系统日期



-f, --file=DATEFILE like --date once for each line of DATEFILE      #和上面的--date类似,每一行来自DATEFILE

-r, --reference=FILE display the last modification time of FILE     #显示最近修改时间的文件

-R, --rfc-2822 output date and time in RFC 2822 format.   #输出时间和日期为RFC2822的格式,例如:Mon, 07 Aug 2006 12:34:56 -0600

--rfc-3339=TIMESPEC output  date  and  time in RFC 3339 format.    #输出时间和日期为RFC2822的格式,时间和日期是通过空格分开的:2006-08-07 12:34:56-06:00

-s, --set=STRING set time described by STRIN   #设置STRING描述的时间

-u, --utc, --universal print or set Coordinated Universal Time #协调世界时(Coordinated Universal Time,缩写为UTC,并且因此它的拼写经常写为Universal TimeCoordinated,有时也写成Universal Coordinated Time)是世界各地通用标准时间。以前的现在仍然广泛流行的是格林威治时间,也叫作世界时,谐调世界时名义上反映了随着地球的基本子午线平均日光时间。

-help display this help and exit              #显示帮助并退出

-version output version information and exit    #显示版本信息并退出

二、hwclock

语法格式:

hwclock [--adjust][--debug][--hctosys][--show][--systohc][--test]

[--utc][--version][--set --date=<日期与时间>]


参数说明:

adjust or -a

hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。


hctosys or -s

将系统时钟调整为与目前的硬件时钟一致。


set date=<日期与时间>

设定硬件时钟。


show or -r

显示硬件时钟的时间与日期。


systohc or -w

将硬件时钟调整为与目前的系统时钟一致。


version or -v

显示版本信息。


debug

显示hwclock执行时详细的信息。


test

仅测试程序,而不会实际更改硬件时钟。


utc

若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。


同步系统时钟和硬件时钟

# hwclock w

设置硬件时钟时间:

# hwclock --set --date="9/8/2007 16:45:05"

查看硬件时钟

# hwclock -r