每天一個linux命令(37):date命令
在(zai)linux環境中,不(bu)管(guan)是(shi)編程還是(shi)其(qi)他維護,時間是(shi)必(bi)不(bu)可(ke)少的(de),也經(jing)常(chang)會用到時間的(de)運算,熟練運用date命令(ling)來表示(shi)自己想(xiang)要表示(shi)的(de)時間,肯定(ding)可(ke)以給自己的(de)工(gong)作帶來諸多(duo)方便(bian)。
1.命令格(ge)式:
date [參(can)數]... [+格(ge)式]
2.命令功能:
date 可以用(yong)來顯示或(huo)設定系統的日期與時間。
3.命(ming)令(ling)參數:
必要參數:
%H 小時(以(yi)00-23來表示)。
%I 小時(以01-12來表示)。
%K 小時(以0-23來表示(shi))。
%l 小時(以0-12來表示)。
%M 分鐘(以00-59來表示)。
%P AM或(huo)PM。
%r 時(shi)間(含時(shi)分秒,小時(shi)以12小時(shi)AM/PM來表示)。
%s 總(zong)秒(miao)數。起算(suan)時間為1970-01-01 00:00:00 UTC。
%S 秒(以本地的(de)慣用法來(lai)表示)。
%T 時間(含(han)時分秒,小時以24小時制來表(biao)示(shi))。
%X 時間(jian)(以本(ben)地(di)的慣用法來(lai)表示(shi))。
%Z 市區。
%a 星期的縮(suo)寫。
%A 星期的(de)完整名(ming)稱(cheng)。
%b 月份英文名(ming)的縮寫。
%B 月份的完整英(ying)文名(ming)稱。
%c 日期與時間。只輸入date指令(ling)也會顯示同(tong)樣的結果(guo)。
%d 日期(以(yi)01-31來表示)。
%D 日(ri)期(含年(nian)月日(ri))。
%j 該年中的第幾天。
%m 月份(以01-12來表示(shi))。
%U 該年中的周數。
%w 該周的天數(shu),0代(dai)表(biao)周日,1代(dai)表(biao)周一,異詞類推。
%x 日(ri)期(以(yi)本地的慣用法來表示(shi))。
%y 年份(以00-99來表示)。
%Y 年份(fen)(以四位數來表示)。
%n 在顯示時,插入新(xin)的(de)一行。
%t 在顯示時,插入tab。
MM 月份(必要)
DD 日期(必(bi)要)
hh 小時(必(bi)要)
mm 分鐘(必(bi)要)
ss 秒(選擇性)
選(xuan)擇參數:
-d<字(zi)符串(chuan)(chuan)> 顯(xian)示字(zi)符串(chuan)(chuan)所指的日期與時間。字(zi)符串(chuan)(chuan)前后必須(xu)加上雙(shuang)引號(hao)。
-s<字(zi)符(fu)串(chuan)> 根據(ju)字(zi)符(fu)串(chuan)來設置日期與時間。字(zi)符(fu)串(chuan)前后必須加上雙引號。
-u 顯示GMT。
--help 在線(xian)幫(bang)助。
--version 顯示版本信(xin)息
4.使用說(shuo)明:
1.在顯示方面(mian),使用者可以設定(ding)欲(yu)顯示的格式(shi),格式(shi)設定(ding)為一(yi)個加號后(hou)接數個標記,其中可用的標記列表如下(xia): % : 打印出(chu) %:
%n : 下一行(xing)
%t : 跳格
%H : 小時(shi)(00..23)
%I : 小時(01..12)
%k : 小時(shi)(0..23)
%l : 小時(1..12)
%M : 分鐘(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式(shi)為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(miao)(00..61)
%T : 直(zhi)接(jie)顯示(shi)時間 (24 小時制)
%X : 相當于 %H:%M:%S
%Z : 顯示(shi)時(shi)區 %a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接(jie)顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示(shi)日期 (mm/dd/yy)
%h : 同 %b
%j : 一年(nian)中的第幾天 (001..366)
%m : 月(yue)份 (01..12)
%U : 一(yi)年中(zhong)的(de)(de)第幾周 (00..53) (以 Sunday 為(wei)一(yi)周的(de)(de)第一(yi)天的(de)(de)情形)
%w : 一周中的(de)第幾(ji)天 (0..6)
%W : 一(yi)年(nian)中(zhong)的第幾周(zhou) (00..53) (以 Monday 為一(yi)周(zhou)的第一(yi)天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年(nian)份的(de)最(zui)后兩位(wei)數字(zi) (00.99)
%Y : 完整(zheng)年份 (0000..9999)
2.在設定(ding)時間方面(mian):
date -s //設置當前時(shi)間,只(zhi)有root權限(xian)才(cai)能設置,其他只(zhi)能查看。
date -s 20080523 //設(she)置(zhi)成20080523,這樣(yang)會把具(ju)體時(shi)間設(she)置(zhi)成空(kong)00:00:00
date -s 01:01:01 //設置具(ju)體時間,不(bu)會對(dui)日(ri)期(qi)做更改
date -s “01:01:01 2008-05-23″ //這(zhe)樣可以設置全部(bu)時間
date -s “01:01:01 20080523″ //這樣可以設置全部時間
date -s “2008-05-23 01:01:01″ //這樣可(ke)以設置全部時間
date -s “20080523 01:01:01″ //這樣(yang)可以設置全部時間
3.加減:
date +%Y%m%d //顯(xian)示前天年月(yue)日
date +%Y%m%d --date="+1 day" //顯示前一天(tian)的(de)日期
date +%Y%m%d --date="-1 day" //顯示后(hou)一天(tian)的日期
date +%Y%m%d --date="-1 month" //顯示上一(yi)月的日(ri)期(qi)
date +%Y%m%d --date="+1 month" //顯示(shi)下一(yi)月的日期
date +%Y%m%d --date="-1 year" //顯示前(qian)一年(nian)的日(ri)期(qi)
date +%Y%m%d --date="+1 year" //顯示下一年的日期
5.使用實例(li):
實例1:顯示當(dang)前時間
命令(ling):
date
date '+%c'
date '+%D'
date '+%x'
date '+%T'
date '+%X'
輸出(chu):
[root@localhost ~]# date
2012年 12月 08日 星期(qi)六 08:31:35 CST
[root@localhost ~]# date '+%c'
2012年(nian)12月08日 星期六 08時(shi)34分44秒
[root@localhost ~]# date '+%D'
12/08/12[root@localhost ~]# date '+%x'
2012年12月08日
[root@localhost ~]# date '+%T'
08:35:36[root@localhost ~]# date '+%X'
08時35分(fen)54秒
[root@localhost ~]#
說明:
實(shi)例(li)2:顯示(shi)日期和設定時間
命令:
date --date 08:42:00
輸出(chu):
[root@localhost ~]# date '+%c'
2012年12月08日(ri) 星期六 08時41分37秒
[root@localhost ~]# date --date 08:42:00
2012年 12月(yue) 08日 星期(qi)六 08:42:00 CST
[root@localhost ~]# date '+%c' --date 08:45:00
2012年12月08日 星期六(liu) 08時45分00秒(miao)
[root@localhost ~]#
說明:
實例3:date -d參數使用
命令:
輸出:
[root@localhost ~]# date -d "nov 22"
2012年(nian) 11月 22日 星期四 00:00:00 CST
[root@localhost ~]# date -d '2 weeks'
2012年 12月(yue) 22日 星期六 08:50:21 CST
[root@localhost ~]# date -d 'next monday'
2012年 12月 10日 星期(qi)一 00:00:00 CST
[root@localhost ~]# date -d next-day +%Y%m%d
20121209[root@localhost ~]# date -d tomorrow +%Y%m%d
20121209[root@localhost ~]# date -d last-day +%Y%m%d
20121207[root@localhost ~]# date -d yesterday +%Y%m%d
20121207[root@localhost ~]# date -d last-month +%Y%m
201211[root@localhost ~]# date -d next-month +%Y%m
201301[root@localhost ~]# date -d '30 days ago'
2012年 11月(yue) 08日(ri) 星期(qi)四 08:51:37 CST
[root@localhost ~]# date -d '-100 days'
2012年 08月 30日 星期四 08:52:03 CST
[root@localhost ~]# date -d 'dec 14 -2 weeks'
2012年 11月(yue) 30日 星期五 00:00:00 CST
[root@localhost ~]# date -d '50 days'
2013年 01月(yue) 27日 星(xing)期日 08:52:27 CST
說明:
date 命令的(de)(de)另(ling)一個擴展是 -d 選(xuan)項(xiang)(xiang)(xiang),該選(xuan)項(xiang)(xiang)(xiang)非常有用。使用這(zhe)個功(gong)能(neng)強大的(de)(de)選(xuan)項(xiang)(xiang)(xiang),通過(guo)將日(ri)期(qi)作為(wei)引號括起(qi)來的(de)(de)參(can)數提供,您可(ke)(ke)以(yi)(yi)快速地查明一個特定的(de)(de)日(ri)期(qi)。-d 選(xuan)項(xiang)(xiang)(xiang)還可(ke)(ke)以(yi)(yi)告訴您,相對于當前日(ri)期(qi)若(ruo)干(gan)(gan)天(tian)的(de)(de)究(jiu)竟(jing)是哪(na)一天(tian),從現在(zai)開始的(de)(de)若(ruo)干(gan)(gan)天(tian)或若(ruo)干(gan)(gan)星期(qi)以(yi)(yi)后,或者以(yi)(yi)前(過(guo)去(qu))。通過(guo)將這(zhe)個相對偏移使用引號括起(qi)來,作為(wei) -d 選(xuan)項(xiang)(xiang)(xiang)的(de)(de)參(can)數,就(jiu)可(ke)(ke)以(yi)(yi)完(wan)成這(zhe)項(xiang)(xiang)(xiang)任務。
具體(ti)說明如下:
date -d "nov 22" 今年的 11 月 22 日(ri)是星期三(san)
date -d '2 weeks' 2周后的日(ri)期
date -d 'next monday' (下周(zhou)一的(de)日期)
date -d next-day +%Y%m%d(明天(tian)的日期)或者:date -d tomorrow +%Y%m%d
date -d last-day +%Y%m%d(昨天(tian)的日期) 或者:date -d yesterday +%Y%m%d
date -d last-month +%Y%m(上個(ge)月(yue)是幾月(yue))
date -d next-month +%Y%m(下(xia)個月(yue)是幾月(yue))
使用 ago 指令,您可以得(de)到過去(qu)的日期:
date -d '30 days ago' (30天(tian)前的日期(qi))
使用負數以得到相反的(de)日期(qi):
date -d 'dec 14 -2 weeks' (相(xiang)對(dui):dec 14這個日期的(de)兩(liang)周(zhou)前(qian)的(de)日期)
date -d '-100 days' (100天以前(qian)的(de)日期)
date -d '50 days'(50天(tian)后的日(ri)期)
實例4:顯示月份和日數
命令:
date '+%B %d'
輸出:
[root@localhost ~]# date '+%B %d'
十(shi)二月(yue) 08[root@localhost ~]#
說明:
實(shi)例5:顯(xian)示(shi)時(shi)間(jian)后跳(tiao)行,再顯(xian)示(shi)目前日期
命令:
date '+%T%n%D'
輸出:
[root@localhost ~]# date '+%T%n%D'
09:00:30
12/08/12[root@localhost ~]#
說明:
關注 熵減黑客 ,一起學習成長
