在Linux環境中,不管是程式設計還是其他維護,時間是必不可少的,也經常會用到時間的運算,熟練運用date 指令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多友善。
1.指令格式:
date [參數] [格式]
2.指令功能:
date可以用來顯示或設定系統的日期與時間
3.指令參數:
必要參數:
%H 小時(以00-23來表示)
%I 小時(以01-12來表示)
%K 小時(以0-23來表示)
%l 小時(以0-12來表示)
%M 分鐘(以00-59來表示)
%P AM或PM
%r 時間(含時分秒,小時以12小時AM/PM來表示)
%s 總秒數,起算時間為1970-01-01 00:00:00 UTC
%S 秒(以本地的慣用法來表示)
%T 時間(含時分秒,小時以24小時制來表示)
%X 時間(以本地的慣用法來表示)
%Z 時區
%a 星期的縮寫
%A 星期的完整名稱
%b 月份英文名的縮寫
%B 月份的完整英文名稱
%c 日期與時間。隻輸入date 指令也會顯示同樣的結果
%d 日期(以01-31來表示)
%D 日期(含年月日)
%j 該年中的第幾天
%m 月份(以01-12來表示)
%U 該年中的周數
%w 該周的天數,0代表周日,1代表周一,以此類推
%x 日期(以本地的慣用法來表示)
%y 年份(以00-99來表示)
%Y 年份(以四位數來表示)
%n 在顯示時,插入新的一行
%t 在顯示時,插入tab
MM 月份(必要)
DD 日期(必要)
hh 小時(必要)
mm 分鐘(必要)
ss 秒(選擇性)
選擇參數:
-d <字元串> 顯示字元串所指的的日期與時間,字元串前後必須加上雙引号
-s <字元串> 根據字元串來設定日期與時間。字元串前後必須加上雙引号
-u 顯示GMT
--help
--version
4.使用說明:
1.在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加号後接數個标記,其中可用的标記清單如下:%:列印出 %:
%n : 下一行
%t : 跳格
%H : 小時(00--23)
%I : 小時(01--12)
%k : 小時(0--23)
%l : 小時(0--12)
%M : 分鐘(00--59)
%p : 顯示本地 AM 或PM
%r : 直接顯示時間(12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年1月1日00:00:00 UTC 到目前為止的秒數
%S : 秒(00--61) 》》》》》》》》》》》》》為什麼是61秒?
%T : 直接顯示時間(24 小時制)
%X : 相當于 %H:%M:%S
%Z : 顯示時區 %a : 星期幾(縮寫)
%A : 星期幾(完整拼寫)
%b : 月份(縮寫)
%B : 月份(完整拼寫)
%c : 直接顯示日期與時間
%d : 日(01--31)
%D : 直接顯示日期(mm/dd/yy)
%h : 同 %b
%m : 月份(01--12)
%j : 一年中的第幾天(001--366)
%U : 一年中的第幾周(00--53)(以 Sunday 為一周的第一天的情形)
%W : 一年中的第幾周(00--53)(以Monday 為一周的第一天的情形)
%w : 一周中的 第幾天(0-6)
%x : 直接顯示日期(mm/dd/yy)
%y : 年份的最後兩位數字(00-99)
%Y : 完整年份(0000-9999)
2.在設定時間方面:
date -s //設定目前時間,隻有root權限才能設定,其他隻能檢視
date -s 20120707 //設定成20120707,這樣會把具體時間設定成空00:00:00
date -s 01:01:01 //設定具體時間,不會對日期做更改
date -s “01:01:01 20130707” //這樣可以設定全部時間
date -s “01:01:01 2013-07-07” //這樣可以設定全部時間
3.加減
date +%Y%m%d //顯示前天年月日
date +%Y%m%d --date="+-1 day" //顯示前後一天的日期
date +%Y%m%d --date="+-1 month" //顯示上下一個月的日期
date +%Y%m%d --date="+- year" //顯示前後一年的日期
5.使用執行個體:
執行個體1:顯示目前時間
指令:
date
date ‘+%c’
date '+%D'
date '+%x'
date '+%T'
date '+%X'
執行個體2:顯示日期和設定時間
指令: date --date 08:42:00
執行個體3: date -d 參數使用
date 指令的另一個擴充是 -d 選項,該選項非常有用。使用這個功能強大的選項,通過将日期作為引号括起來的參數提供,您可以快速的查明一個特定的日期。-d 選項還可以告訴您,相對于目前日期若幹天的究竟是哪一天,從現在開始的若幹天或若幹星期以後,或者以前,通過将這個相對偏移使用引号括起來,作為 -d 選項的參數,就可以完成這項任務。
具體說明如下:
date -d "nov 22", 今年的 11 月 22 日是星期三
date -d '2 weeks' 2周後的日期
date -d 'next monday ' 下周一的日期
date -d next/last-day +%Y%m%d
date -d next/last-month +%Y%m%d
使用 ago 指令,您可以得到過去的日期
date -d '30 days ago' (30天前的日期)
使用負數以得到相反的日期:
date -d 'dec 14 -2 weeks ' (相對:dec 14 這個日期的兩周前的日期)
date -d '100 days ' (100天以前的日期)
date -d '50 days' (50天後的日期)
執行個體4:顯示月份的日數
指令:date ‘+%B %d’
執行個體5:顯示時間後跳行,再顯示目前日期
指令: date ‘+%T %n %D’