1.命令簡介
date命令用于按照指定格式顯示當(dāng)前時間或者指定的時間,也可以設(shè)置系統(tǒng)時間。很多Shell腳本里面需要打印不同格式的時間或日期,以及要根據(jù)時間和日期執(zhí)行操作,此時可以使用date命令來完成。在類Unix系統(tǒng)中,日期被存儲為一個整數(shù),其大小為協(xié)調(diào)世界時(UTC)1970年1月1日0時0分0秒起流逝的秒數(shù),即Unix時間戳。
2.命令格式
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
其中,F(xiàn)ORMAT為格式控制字符串,可取如下值:
%% 字符%
%a 星期的簡稱(Sun~Sat)
%A 星期的全稱(Sunday~Saturday)
%b 月的簡稱(Jan~Dec)
%B 月的全稱(January~December)
%c 日期和時間(Thu 06 Dec 2018 09:43:53 AM CST)。只輸入date指令也會顯示同樣的結(jié)果。
%C 世紀(jì)。和%Y比較像,但不顯示最后兩個數(shù)字,如20
%d 一個月的第幾天(01~31)
%D 日期,等同于%m/%d/%y,如12/06/18
%e 一個月的第幾天(1~31),單數(shù)字以空格填充,等同于%_d
%F 日期,等同于%Y-%m-%d,如2018-12-06
%g 年的最后兩個數(shù)字(yy),比如2018則輸出18,等同于%y
%G 年份(yyyy)
%h 月的簡稱(Jan~Dec),等同于%b
%H 小時,24小時制(00~23)
%I 小時,12小時制(01~12)
%j 一年的第幾天(001~366)
%k 小時,24小時制(0~23)。單數(shù)字填充空格,等同于%_H
%l 小時,12小時制(1~12)。單數(shù)字填充空格,等同于%_I
%m 月份(01~12)
%M 分鐘(00~59)
%n 換行符newline
%N 納秒nanoseconds(000000000..999999999)
%p 顯示出AM或PM
%P 顯示出am或pm
%r 顯示時間,12小時制(hh:mm:ss %p)
%R 顯示小時與分鐘,24小時制,等同于%H:%M
%s 從1970年1月1日00:00:00到目前經(jīng)歷的秒數(shù)
%S 顯示秒(00~59)
%t Tab符
%T 顯示時間,24小時制(hh:mm:ss),等同于%H:%M:%S
%u 一周的第幾天(1..7)。1表示星期一
%U 一年的第幾周,周日為每周的第一天(00..53)
%V 一年的第幾周,周一為每周的第一天(01..53)
%w 一個星期的第幾天(0~6),0代表星期天
%W 一年的第幾周,周一為每周的第一天(00..53)
%x 日期(mm/dd/yyyy),如12/06/2018
%X 時間,等同于%H:%M:%S
%y 年的最后兩個數(shù)字(2018則是18)
%Y 年(yyyy)
%z 以+hhmm格式顯示時區(qū)(如+0800)
%:z 以+hh:mm格式顯示時區(qū)(如+08:00)
%::z 以+hh:mm:ss格式顯示時區(qū)(如+08:00:00)
%Z 縮寫顯示時區(qū)名稱,如CST(China Standard Time)
%h,%b 月的簡稱(Jan~Dec)
填充字符說明:默認(rèn)地,date命令以0填充數(shù)字域,以下填充字符的控制符可以跟在%后使用:
- (hyphen,連字符):不進(jìn)行填充
_ (underscore,下劃線):以空格填充
0(zero)以0填充
^ 盡可能地使用大寫輸出
# 盡可能地按照相反的大小寫進(jìn)行輸出
3.命令選項
-d, --date=STRING:顯示由STRING指定的時間,而不是當(dāng)前時間戳;
-f, --file=DATEFILE:顯示DATEFILE文件中的每行時間;
-I[TIMESPEC], --iso-8601[=TIMESPEC]:以ISO 8601規(guī)范格式按照指定精度[TIMESPEC]顯示時間。TIMESPEC默認(rèn)取值為"date",亦可取值'hours', 'minutes', 'seconds', 或 'ns';
-r, --reference=FILE:顯示文件的最后修改時間
-R, --rfc-2822:以RFC-2822規(guī)定格式顯示時間,例如:Wed, 05 Dec 2018 22:10:34 +0800
--rfc-3339=TIMESPEC:以RFC 3339規(guī)定格式顯示時間,可以由TIMESPEC指明精度,TIMESPEC可取值'date', 'seconds', or 'ns'。例如:2018-12-05 22:09:59.230994842+08:00
-s, --set=STRING:設(shè)置系統(tǒng)時間為STRING指定的時間
-u, --utc, --universal:顯示或設(shè)定為協(xié)調(diào)世界時(UTC,Coordinated Universal Time)時間格式
--help:顯示date命令的幫助信息
--version:顯示date命令的版本信息
4.常用示例
(1)獲取Unix時間戳。
(2)將Unix時間戳轉(zhuǎn)換為可讀時間。
date -d @1483525407
Wed Jan 4 18:23:27 CST 2017
date -d @1483525407 +"%F %T"
2017-01-04 18:23:27
注意:-d后需跟合法格式的日期,所以時間戳需要添加@符以示區(qū)別。
(3)格式化輸出當(dāng)前時間。
date +"%Y-%m-%d %H:%M:%S"
2018-12-06 10:57:33
#或
date +"%F %T"
(4)時間加減操作。
date +"%Y-%m-%d %H:%M:%S" //顯示當(dāng)前時間
date -d "+1 day" +"%Y-%m-%d %H:%M:%S" //顯示前一天的時間
date -d "-1 day" +"%Y-%m-%d %H:%M:%S" //顯示后一天的時間
date -d "-1 month" +"%Y-%m-%d %H:%M:%S" //顯示上一月的時間
date -d "+1 month" +"%Y-%m-%d %H:%M:%S" //顯示下一月的時間
date -d "-1 year" +"%Y-%m-%d %H:%M:%S" //顯示前一年的時間
date -d "+1 year" +"%Y-%m-%d %H:%M:%S" //顯示下一年的時間
(5)普通格式轉(zhuǎn)換。
date -d "2009-12-12" +"%Y/%m/%d %H:%M:%S"
2009/12/12 00:00:00
(6)設(shè)置系統(tǒng)時間。
date -s "2016-11-11 00:00:00"
Fri Nov 11 00:00:00 CST 2016
date
Fri Nov 11 00:00:05 CST 2016
以上就是Linux date命令的使用的詳細(xì)內(nèi)容,更多關(guān)于Linux date命令的資料請關(guān)注腳本之家其它相關(guān)文章!