linux 的date命令及系統時間設置

Linux時鐘分爲系統時鐘(System Clock)和硬件(Real Time Clock,簡稱RTC)時鐘。系統時鐘是指當前Linux Kernel中的時鐘,而硬件時鐘則是主板上由電池供電的時鐘,這個硬件時鐘可以在BIOS中進行設置。當Linux啓動時,硬件時鐘會去讀取系統時鐘的設置,然後系統時鐘就會獨立於硬件運作。
Linux中的所有命令(包括函數)都是採用的系統時鐘設置。在Linux中,用於時鐘查看和設置的命令主要有date、hwclock。

date命令 
  date命令的功能是顯示和設置系統日期和時間。 
  該命令的一般格式爲: date [選項] 顯示時間格式(以+開頭,後面接格式) 
  date 設置時間格式 
  命令中各選項的含義分別爲: 
  -d datestr, --date datestr 顯示由datestr描述的日期 
  -s datestr, --set datestr 設置datestr 描述的日期 
  -u, --universal 顯示或設置通用時間 
時間域 
  % H 小時(00..23) 
  % I 小時(01..12) 
  % k 小時(0..23) 
  % l 小時(1..12) 
  % M 分(00..59) 
  % p 顯示出AM或PM 
  % r 時間(hh:mm:ss AM或PM),12小時 
  % s 從1970年1月1日00:00:00到目前經歷的秒數 
  % S 秒(00..59) 
  % T 時間(24小時制)(hh:mm:ss) 
  % X 顯示時間的格式(%H:%M:%S) 
  % 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) 
  % m 月(01..12) 
  % w 一個星期的第幾天(0代表星期天) 
  % W 一年的第幾個星期(00..53,星期一爲第一天) 
  % x 顯示日期的格式(mm/dd/yy) 
  % y 年的最後兩個數字( 1999則是99) 
  % Y 年(例如:1970,1996等) 
  需要特別說明的是,只有超級用戶才能用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 
      例5:設置一天前
     date --date "1 days ago" +"%Y-%m-%d"

Date 命令參數小技巧
LastUpdated:2006-03-27
By:Gman!

-for beginner:wink:此參數可以用於日誌處理和時間統計;

由於Linux對man date -d 參數說的比較模糊,故舉例如下:
# -d, --date=STRING  display time described by STRING, not `now'

For Linux
[root@Gman root]# date -d next-day +%Y%m%d
20060328
[root@Gman root]# date -d last-day +%Y%m%d
20060326
[root@Gman root]# date -d yesterday +%Y%m%d
20060326
[root@Gman root]# date -d tomorrow +%Y%m%d
20060328
[root@Gman root]# date -d last-month +%Y%m
200602
[root@Gman root]# date -d next-month +%Y%m
200604
[root@Gman root]# date -d next-year +%Y
2007
------------------------------------------------------------------------------
而FreeBSD則不同;舉例如下:
For FreeBSD
bash-2.05b# date -v -1d +%Y%m%d
20060326
bash-2.05b#  date -v -1m +%Y%m%d 
20060227
bash-2.05b#  date -v -1y +%Y%m%d 
20050327


例子:修改日期時間
在命令行輸入:
Date:顯示當前時間 Fri Aug 3 14:15:16 CST 2007
date –s:按字符串方式修改時間
可以只修改日期,不修改時間,輸入: date -s 2007-08-03
只修改時間,輸入:date -s 14:15:00
同時修改日期時間,注意要加雙引號,日期與時間之間有一空格,輸入:
#date -s "2007-08-03 14:15:00"
2、查看硬件時間
# hwclock
設置硬件時間
# hwclock -set -date="07/07/06 10:19" (月/日/年 時:分:秒)
3、硬件時間和系統時間的同步
按照前面的說法,重新啓動系統,硬件時間會讀取系統時間,實現同步,但是在不重新啓動的時候,需要用hwclock命令實現同步。
硬件時鐘與系統時鐘同步:
# hwclock --hctosys(hc代表硬件時間,sys代表系統時間)
系統時鐘和硬件時鐘同步:(讓系統的時間同步到硬件時鐘)
# hwclock –systohc
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章