1 於日期和日間背景知識
UTC時間:翻譯為國際標準時間,需要由世界上精確的原子時鐘來確定秒,並根據地球自轉快慢進行閏秒的調節。理論上此時間為世界上最準確的時間。目前各國採用的標準時間。
GMT時間:翻譯為格林尼治時間,由英國格林尼治天文台發布的時間。1960年之前作為世界標準時來使用。理論上正午12點為太陽經過橫穿本初子午線的時間,但由於地球自轉速度正在變慢,此時間會產生較大的時間誤差。但對於日常生活來說GMT和UTC的實際誤差並不太重要。
時區:地理上的概念,將地球上本初子午線兩邊的半球分別劃分為12個時區。各個時區的時間根據世界標準時間進行調整。隨地球自轉方向,向東每過15度增加1個小時,反之向西每過15度減去1個小時。例如北京位於東8區,則當標準時間為某日00:00:00時,北京時間為早上08:00:00。
CST:這個縮寫的理解比較多。如China stand time,Central stand time,甚至cuba stand time。
2 date 命令用法
文法命令如下:date [option...] [ +Format ]
2.1 選項部分
-d string 格式化string的時間
-f file 格式化file中每行的時間
-r file 顯示檔案的修改時間
-u 顯示為UTC時間,中文系統預設為CST時間
-s string 將string設定為系統時間,為防止重啟後系統從CMOS中重新讀取,要使用clock -w將設定的時間寫入硬體時鐘。
2.2 格式部分
日期格式:%[aAbBcCdDeFgGhjmuUVwWxyY]
%Y 年份2013 %y 年份後兩位 %C 年份前兩位
%m 月份01-12
%d 日01-31 %e = %_d不帶前置0,而是空格
%a 星期的縮寫 %A 星期全寫
%b 月份縮寫 %B 月份全寫
%g 周數 1..52
%j 年日數1-366
%D %m/%d/%y 同%x
%u 周日數1-7 %w 0-6
時間格式:%[ HIklMNpPrRsSTXzZ ]
%H : 小時00 .. 23 %k無前置0
%I 小時01... 12 %l 無前置0
%M 分鐘00...59
%S 秒 00...60
%T %H:%M:%S的組合
%r 本地12小時制式顯示時間,如`11:11:04 PM'
%X 本地24小時制式顯示時間,如 23:13:48
%P am或pm
%s 19700101 淩晨起的秒數
%z 顯示時區,東8區格式為 +0800
格式填充
除了採用格式參數來控制日期的格式,而可以用填充符號來控制格式,這個填充參數放在%後面使用
- 不填充
_ 用空格填充
0 用0填充
3 用法執行個體
3.1 設定系統時間
date -s "2013-01-30 13:59:55" +"%Y-%m-%d %H:%M:%S"
3.2 輸出為指定日期
date +"%y/%m/%d" 格式化目前時間
date -d "2012-01-30" +"%y/%m/%d" 格式化指定時間
3.3 與時間戳記互轉
date -d "2012-01-30" +%s 日期轉換為時間戳記
date -d @1327852800 +%Y:%m:%d %H:%M:%S 時間戳記轉換為日期