歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux date日期格式及加減運算

Linux date日期格式及加減運算

日期:2017/2/28 15:42:52   编辑:Linux教程

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

Copyright © Linux教程網 All Rights Reserved