顯示時間是個常用的命令,在寫shell腳本中也經常會用到與日期相關文件名或時間顯示。無論是linux還是windows下都是date命令。
Linux下date命令用法
date [OPTION]… [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
date命令參數
-d, –date=STRING 顯示STRING指定的時間
-f, –file=DATEFILE 類似–date參數顯示DATEFILE文件中的每行時間
-ITIMESPEC, –iso-8601[=TIMESPEC] 以ISO 8601 格式顯示日期/時間。TIMESPEC爲”date”(只顯示日期)、”hours”、”minutes”、”senconds”(顯示時間精度)之一,默認爲”date”。
-r, –reference=FILE 顯示文件的最後修改時間
-R, –rfc-2822 以RFC-2822兼容日期格式顯示時間
-s, –set=STRING 設置時間爲STRING
-u, –utc, –universal 顯示或設定爲Coordinated Universal Time時間格式
date命令輸出顯示格式
%% 字符%
%a 星期的縮寫(Sun..Sat)
%A 星期的完整名稱 (Sunday..Saturday)
%b 月份的縮寫(Jan..Dec)
%B 月份的完整名稱(January..December)
%c 日期時間(Sat Nov 04 12:02:33 EST 1989)
%C 世紀(年份除100後去整) [00-99]
%d 一個月的第幾天(01..31)
%D 日期(mm/dd/yy)
%e 一個月的第幾天 ( 1..31)
%F 日期,同%Y-%m-%d
%g 年份(yy)
%G 年份(yyyy)
%h 同%b
%H 小時(00..23)
%I 小時(01..12)
%j 一年的第幾天(001..366)
%k 小時( 0..23)
%l 小時( 1..12)
%m 月份(01..12)
%M 分鐘(00..59)
%n 換行
%N 納秒(000000000..999999999)
%p AM or PM
%P am or pm
%r 12小時制時間(hh:mm:ss [AP]M)
%R 24小時制時間(hh:mm)
%s 從00:00:00 1970-01-01 UTC開始的秒數
%S 秒(00..60)
%t 製表符
%T 24小時制時間(hh:mm:ss)
%u 一週的第幾天(1..7); 1 表示星期一
%U 一年的第幾周,週日爲每週的第一天(00..53)
%V 一年的第幾周,週一爲每週的第一天 (01..53)
%w 一週的第幾天 (0..6); 0 代表週日
%W 一年的第幾周,週一爲每週的第一天(00..53)
%x 日期(mm/dd/yy)
%X 時間(%H:%M:%S)
%y 年份(00..99)
%Y 年份 (1970…)
%z RFC-2822 風格數字格式時區(-0500)
%Z 時區(e.g., EDT), 無法確定時區則爲空
以下是做的一些實驗,便於理解
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | $ date -d
"2010-11-15 23:00:01" Mon Nov 15
23:00:01 PST 2010 $ date -d
"2010/11/15 23:0:2" Mon Nov 15
23:00:02 PST 2010 $ date -d
"2010/11/15T23:0:2" Mon Nov 15
08:00:02 PST 2010 $ $ echo
"2010-11-15 23:00:01" > date.txt $ echo
"2010/11/15 23:00:02" >> date.txt $ cat
date.txt 2010-11-15
23:00:01 2010/11/15
23:00:02 $ date -f
date.txt Mon Nov 15
23:00:01 PST 2010 Mon Nov 15
23:00:02 PST 2010 $ $ ls
-l total
4 -rw-r--r-- 1
znan sybase 40 Nov 15 21:14 date.txt $ date -r
date.txt Mon Nov 15
21:14:36 PST 2010 $ $ date
-I 2010-11-15 $ date
-Ihours 2010-11-15T21-0800 $ date
-Iminutes 2010-11-15T21:16-0800 $ date
-Iseconds 2010-11-15T21:16:24-0800 $ $ date
-R Mon, 15 Nov
2010 21:47:08 -0800 $ date
-u Tue Nov 16
05:47:13 UTC 2010 $ $ date +"Today
is %A." Today is
Monday. $ date
+"Date:%b. %e, %G" Date:Nov. 15,
2010 $ date +"Date:
%b.%e, %G" Date: Nov.15,
2010 $ date +"%x
%X" 11/15/2010
09:50:21 PM $ date
+"%Y-%m-%d %H:%M:%S" 2010-11-15
21:51:32 $ date
+"%Y-%m-%d %I:%M:%S %p" 2010-11-15
09:51:55 PM $ |