修改日期:
时间设定成2009年5月10日的命令如下:
#date -s
05/10/2009
修改时间:
将系统时间设定成上午10点18分0秒的命令如下。
#date -s 10:18:00
修改时区:
找到相应的时区文件
/usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime。
修改/etc/sysconfig/clock文件的内容为:
ZONE=”Asia/Shanghai”
UTC=false
ARC=false
同步bios时间:
同步BIOS时钟,强制把系统时间写入CMOS,命令如下:
#clock -w
/etc/sysconfig/clock
文件,只对 hwclock 命令有效,且只在系统启动和关闭的时候才有用(修改了其中的 UTC=true 到 UTC=false 的前后,执行 hwclock
(--utc, 或 --localtime) 都没有变化,要重启系统后才生效);
date命令的功能是显示和设置系统日期和时间。
输入date 查看目前系统时间。
修改时间需要 date -功能字符
修改内容
命令中各选项的含义分别为:
-d datestr, --date
datestr 显示由datestr描述的日期
-s datestr, --set
datestr 设置datestr 描述的日期
-u, --universal
显示或设置通用时间
时间域
%H 小时(00..23)
%M 分(00..59)
%S 秒(00..59)
%s
从1970年1月1日00:00:00到目前经历的秒数
%I 小时(01..12)
%k 小时(0..23)
%l 小时(1..12)
%m 月(01..12)
%p 显示出AM或PM
%r 时间(hh:mm:ss
AM或PM),12小时
%T
时间(24小时制)(hh:mm:ss)
%X
显示时间的格式(%H:%M:%S),12小时制
%x
显示日期的格式(mm/dd/yy)
%y 年的最后两个数字(
1999则是99)
%Y
年(例如:1970,1996等)
%Z 时区 日期域
%a 星期几的简称(
Sun..Sat)
%A 星期几的全称(
Sunday..Saturday)
%b 月的简称(Jan..Dec)
%B
月的全称(January..December)
%c 日期和时间( Mon Nov 8
14:12:46 CST 1999)
%d
一个月的第几天(01..31)
%D 日期(mm/dd/yy)
%h 和%b选项相同
%j
一年的第几天(001..366)
%w
一个星期的第几天(0代表星期天)
%W
一年的第几个星期(00..53,星期一为第一天)
显示时区:date
-R,和date +%Z的区别是,+%Z只显示CST这样的区域,-R是完整显示
需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。
例1:用指定的格式显示时间。
$ date '+This date now
is =>%x ,time is now =>%X ,thank you !'
This date now is
=>11/12/99 ,time is now =>17:53:01,thank you !
例2:用预定的格式显示当前的时间。
# date
Fri Nov 26 15:20:18 CST
1999
例3:设置时间为下午14点36分。
# date -s
14:36:00
Fri Nov 26 14:15:00 CST
1999
例4:设置时间为1999年11月28号。
# date -s 991128
Sun Nov 28 00:00:00 CST
1999
实例:设置时间伟2008年8月8号12:00
# date -s "2008-08-08 12:00:00"
修改完后,记得输入:clock
-w
把系统时间写入CMOS
CLOCK
1. “系统时间”与“硬件时间”
系统时间:
一般说来就是我们执行 date 命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。
硬件时间:
主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间设定系统时间的过程可能存在时区换算,这要视具体的系统及相关设置而定)。
2.
“UTC时间”与“本地时间”
UTC时间:Coordinated
Universal 8 e2 i( H7 t0 ^/ ^Time
世界协调时间(又称世界标准时间、世界统一时间),在一般精度要求下,它与GMT(Greenwich Mean Time,格林威治标准时间)是一样的,其实也就是说
GMT≈UTC,但 UTC 是以原子钟校准的,更精确。
本地时间:由于处在不同的时区,本地时间一般与UTC是不同的,换算方法就是
本地时间
= UTC + 时区 或 UTC = 本地时间 - 时区
时区东为正,西为负,例如在中国,本地时间都使用北京时间,在linux上显示就是
CST(China Standard Time,中国标准时,注意美国的中部标准时Central Standard
Time也缩写为CST,与这里的CST不是一回事!),时区为东八区,也就是 +8 区,所以 CST=UTC+(+8小时) 或 UTC=CST-(+8小时)。
1. 系统时间 date
直接调用
date,得到的是本地时间。如果想得到UTC时间的话,使用 date -u。
[12-01 19:07>
~]$ date
2009年 12月 07日
星期一 14:22:20 CST
[12-01 19:07>
~]$ date -u
2009年 12月 07日
星期一 06:22:22 UTC
2. 硬件时间
/sbin/hwclock
直接调用
/sbin/hwclock 显示的时间就是 BIOS 中的时间吗?未必!这要看 /etc/sysconfig/clock
中是否启用了UTC,如果启用了UTC(UTC=true),显示的其实是经过时区换算的时间而不是BIOS中真正的时间,如果加上 --localtime
选项,则得到的总是 BIOS 中实际的时间.
3.
/etc/localtime
这个文件用来设置系统的时区,将
/usr/share/zoneinfo/ 中相应文件拷贝到/etc下并重命名为 localtime 即可修改时区设置,而且这种修改对 date
命令是及时生效的。不论是 date 还是 hwclock 都会用到这个文件,会根据这个文件的时区设置来进行UTC和本地之间之间的换算
硬件时间和系统时间的同步
按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock或clock命令实现同步。
硬件时钟与系统时钟同步:
# hwclock
--hctosys(hc代表硬件时间,sys代表系统时间)
或者
#
clock --hctosys
或者
hwclock
-s
系统时钟和硬件时钟同步:
# hwclock
--systohc
或者
# clock
--systohc
或者
hwclock -w
时区的设置 tzselect
#
tzselect