知识储备


1. RTC:Real Time Clock,实时时钟,指的是硬件时钟;

2. 系统启动方式

  • 对于Windows,启动后从RTC取得时间,设置为系统时间;系统时钟=RTC

  • 对于Linux,系统时钟启动时系统时钟会去读取硬件时钟的设定,然后独立于硬件时钟运作,计时用的是Kernel的软件时钟[可能因为CPU繁忙导致与硬件时钟不一致],Linux命令采用时钟均为系统时钟;系统时钟≠RTC

3. 在Linux上时间管理的命令大致有date、clock、hwclock、cal等


Date命令


Usage:

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

常用选项:

-d, --date=STRING    显示STRING指定的时间

#date -d '2015-8-8'	    显示2015年8月8日日期
#date --date='2015-8-8'    显示2015年8月8日日期
#date -d '1 day ago'    获取前一天的日期+时间并显示

-s,  --set=STRING       设置STRING指定的时间

#date -s '2015-8-8'	    设置日期为2015年8月8日,请注意这里修改的是系统时钟[模拟时钟]
#date --date='12:12:12'    设置时间为12:12:12,请注意日期和时间是俩码事

-u, --utc, --universal    显示或设置协调世界时[就是常见的时区UTC+8这种的UTC时间]

#date [-u|--utc|--universal] 显示协调世界时

FORMAT选项:

说白了就是将日期时间按照指定格式输出,举个简单例子我想用24时间制,而你用12时间制

#date +%Y-%m-%d             按照‘年份-月份-几号’显示时间,请不要丢掉+和%,中间的-是连字符可任意
#date +Today' 'is' '%A.     这个命令显示结果是'Today is Saturday.'本质上仅仅调用周几,其他是STRING
#date +Now' 'time:%H:%M:%S  显示结果是‘Now time:12:42:28’

format规定了很多格式参数的调用方法,具体参考man手册或--help,常用即是如此。


Clock命令、与Hwclock命令


这两个本质上一个命令[我们可以man clock可以看出来],只不过,主要用来查询和设置硬件时钟[RTC]

[8-20]时间管理命令Date、Hwclock、Cal小结_时钟Usage:

hwclock [function] [options...]

常用选项:

-r, --show    读取硬件时钟并以标准格式输出,显示时间总是当地时间

#hwclock --show    显示的结果是Sat 22 Aug 2015 07:56:21 PM CST  -0.447609 seconds显然不同于系统时钟

--set    用给定的时间(--date 选项)设置硬件时间

#hwclock --set --date='2015-8-8'    将给定的2015-8-8时间设置为硬件时间RTC

-s, --hctosys    以硬件时钟为参考,设置系统时钟 

#hwclock -s               // Sat Aug 22 12:06:38 CST 2015
#hwclock --hctosys        // Sat Aug 22 12:06:38 CST 2015

-w, --systohc   以系统时钟为参考,设置硬件时钟 

#hwclock -w               // Sat 22 Aug 2015 12:08:19 PM CST  -0.893316 seconds
#hwclock --systohc        // Sat 22 Aug 2015 12:08:33 PM CST  -0.970060 seconds


Cal命令


这个命令严格来说算不上时间管理,可以用来查看日历等时间信息    

Usage:

cal [-13smjyV] [[[day] month] year]

常用选项:

#cal          没有参数的情况下,显示该月的日历  
#cal -1       查看一个月内的日历
#cal -3       查看三个月内的日历    分别为上个月、这个月、下个月
#cal -j       查看罗马日历
#cal -m       以星期一开头,显示日历  不知道是不是针对中国的优化。
#cal -s       以星期日开头,显示日历  
#cal -y       查看12个月的日历  
#cal -V       显示版本信息并退出cal命令 请注意是大写V
#cal 3 3 2015 当你指定了年月日这个参数,能够定位到那天所在的日历,很有趣,可以
快速查询某年某月某天是周几
   
[8-20]时间管理命令Date、Hwclock、Cal小结_硬件_02