【Linux】date命令用法詳解(日期格式)【轉載】

顯示時間是個常用的命令,在寫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
$


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章