关于linux的时间管理
时间管理:
linux时间:系统时间,硬件时间
CST:中国标准时间(China Standard Time),这个解释可能是针对RedHat Linux。
UTC:协调世界时,又称世界标准时间,简称UTC,从英文国际时间/法文协调时间”Universal Time/Temps Cordonné”而来。中国大陆、香港、澳门、台湾、蒙古国、新加坡、马来西亚、菲律宾、澳洲西部的时间与UTC的时差均为+8,也就是UTC+8。
GMT:格林尼治标准时间(旧译格林威治平均时间或格林威治标准时间;英语:Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。
date 查看系统时间
clock 查看硬件时间(物理机上读取)
hwclock 校准时间
hwclock --show或clock --show 可以显示硬件时间
hwclock/clock -set -date="mmddHHMMYY.SS" 可以设置硬件时间
-w 表示系统时间是准确的,把硬件时间设定与系统时间一致
-s 表示硬件时间是准确的,把系统时间设定与硬件时间一致
date mmddHHMMYY.SS
月日时分年.秒
date -d 显示相应格式时间
date -s 设置相应格式的时间
date “+%M”显示分钟
date “+%H:%M:%S”显示时间(时分秒)、
date “+%D”显示月日年
date “+%d”显示日
date “+%Y”显示年(2012)
date “+%y”显示年(12)
date “+%F”显示年月日
date “+%Y-%m-%d”显示年月日
date “+%T”显示时分秒
date “+%a” 星期几的简称( Sun..Sat)
date “+%A” 星期几的全称( Sunday..Saturday)
date “+%b” 月的简称(Jan..Dec)
date “+%B” 月的全称(January..December)
date “+%j” 显示一年的第几天
date “+%w” 一个星期的第几天(0代表星期天)
date “+%W” 一年的第几个星期
date “+%s” 绝对时间戳,显示从格林时间1970年0点0分0秒开始到现在的秒数
例:
#date -s 20111010 //设置成20111010,这样会把具体时间设置成空00:00:00
#date -s 12:30:30 //设置具体时间,不会对日期做更改
#date -s “12:30:30 2011-10-10” //这样可以设置全部时间
由于Linux对man date -d 参数说的比较模糊,故举例如下:
# -d, --date=STRING display time described by STRING, not `now‘
当前时间2011-07-21
[root@local ~]# date -d next-day +%Y%m%d
20110722
[root@local ~]# date -d last-day +%Y%m%d
20110720
[root@local ~]# date -d yesterday +%Y%m%d
20110720
[root@local ~]# date -d tomorrow +%Y%m%d
20110722
[root@local ~]# date -d last-month +%Y%m
201106
[root@local ~]# date -d next-month +%Y%m
201108
[root@Gman root]# date -d next-year +%Y
2012
cal 显示日历
-m : 以星期一为每周的第一天方式显示。
-j : 以凯撒历显示,即以一月一日起的天数显示。
-y : 显示今年年历
cal 月 年(显示某年的某月日历)
cal 9 1752(程序显示错误)
例:
[root@localhost ~]$ cal 9 1752
2日后面显示的是14号,这其中的原因是:
1582年2月,罗马教廷要求从1582 年10月中减去10天,因此1852年10月4日后面紧跟着就是15日。在意大利、西班牙等国家都这样处理了。其他天主教国家也很快跟着这么做了,但是新教国家不愿意修改,而且希腊等东正教国家直到20世纪初才修改,所以这个改革在英国及其殖民地(包括美国)在1752年9月才被执行。这样1752 年9月2日后面跟着的就是1752年9月14日。这就是为什么cal会生成上面输出的原因了。
Windows的纪年范围只是1980-2099,所以Windows系统就查不到这段历史的时间了。