在linux中man手冊頁,對date -d 參數的的說明比較模糊,一下的舉例,進一步說明:
#-d –date=STRING display time described by STRING not 'now'
命令:
date -d nex-day +%Y%m%d //明天日期
date -d tommorw +%Y%m%d //明天日期
date -d last-day +%Y%m%d //昨天日期
date -d yesterday +Y%m%d //昨天日期
date -d last-month +%Y%m //上個月日期
date -d next-month +%Y%m //下個月的日期
date -d next-year +%Y //明年日期
DATE=$(date +%Y%m%d –date '2 days ago') //獲取昨天或多天前的日期
date 使用的權限:所有使用者。
使用方式:
date [-u][-d datestr] [-s datestr] [–utc]
[–universal][–date=datestr] [–set=datestr]
[–help][–version][+FORMAT][MMDDhhmm][[CC]YY][.ss]]
說明:
date 能用未顯示或設定的日期和時間,在顯示方面使用者能設定預顯示的格式,格式設定為一個加號后接數個標記,其中可用的標記數為如下:
格式:+(一個)后跟多個標記
時間方面:
% //印出
%n //下一行
%t //跳出
%H //小時(00,01,……23)是雙數顯示24小時制
[root@localhost ~]# date +%H
19
[root@localhost ~]#
%k //小時(0,1,2,……23)是單數顯示24小時制
[root@localhost ~]# date +%k
19
[root@localhost ~]#
%I //小時(01,02,03……12)是雙數顯示12小時制
[root@localhost ~]# date +%I
07
[root@localhost ~]#
%l //小時(1,2,3………12)是單數顯示12小時制
[root@localhost ~]# date +%l
7
[root@localhost ~]#
%M //分鐘(00,01,……..59)
[root@localhost ~]# date +%M
39
[root@localhost ~]#
%p //顯示本地AM,PM
[root@localhost ~]# date +%P
pm
[root@localhost ~]# date +%p
PM
[root@localhost ~]#
%r //直接顯示時間(12小時制,格式為hh:mm:ss[AP]M)
[root@localhost ~]# date +%r
07:40:43 PM
[root@localhost ~]#
[root@localhost ~]# date +%R
19:41
%s //從1970年一月一日00:00:00 UTC到目前為止的秒數
[root@localhost ~]# date +%s
1470138130
[root@localhost ~]#
%T //直接顯示時間(24小時制)
[root@localhost ~]# date +%T
19:42:57
[root@localhost ~]#
%x //相當于%H:%M:%s
[root@localhost ~]# date +%X //大寫的X顯示時間
07:43:17 PM
[root@localhost ~]# date +%x
08/02/2016
[root@localhost ~]#
%Z //顯示時區
[root@localhost ~]# date +%z
+0800
[root@localhost ~]#
[root@localhost ~]# date +%Z
CST
[root@localhost ~]#
日期方面:
%a //簡寫星期幾(sun,…..sat)
[root@localhost ~]# date +%a
Tue
[root@localhost ~]#
%A //完整星期幾(sunday,…saturday)
[root@localhost ~]# date +%A
Tuesday
[root@localhost ~]#
%b //簡寫月份(jun,…….Dec)
[root@localhost ~]# date +%b
Aug
[root@localhost ~]#
%B //完整的月份(january,…..december)
[root@localhost ~]# date +%B
August
[root@localhost ~]#
%C //直接顯示日期和時間
[root@localhost ~]# date +%C
20
[root@localhost ~]#
%d //日(01,02,……31)
[root@localhost ~]# date +%d
02
[root@localhost ~]#
%D //直接顯示日期(mm/dd/yy)
[root@localhost ~]# date +%D
08/02/16
[root@localhost ~]#
%h //同%b
[root@localhost ~]# date +%h
Aug
[root@localhost ~]#
%j //一年中第幾天(001,002,…..366)
[root@localhost ~]# date +%j
215
[root@localhost ~]#
%m //月份(01,02,……12)
[root@localhost ~]# date +%m
08
[root@localhost ~]#
%U //一年中第幾周(00,01…..53)(以Sunday為一周的第一天)
[root@localhost ~]# date +%U
31
[root@localhost ~]#
%w //一周中的第幾天
[root@localhost ~]# date +%w
2
[root@localhost ~]#
%W //一年中的第幾周(00,01….53)(以monday為一周的第一天)
[root@localhost ~]# date +%W
31
[root@localhost ~]#
%x //直接顯示日期(mm/dd/yy)
[root@localhost ~]# date +%x
08/02/2016
[root@localhost ~]#
%y //只顯示年份的后兩位數(00,01,…99)
[root@localhost ~]# date +%y
16
[root@localhost ~]#
%Y //完整的年份(0000,…….2016)
[root@localhost ~]# date +%Y
2016
[root@localhost ~]#
如不以加號開頭“+”則表示要設置時間,而時間格式為 MMDDhhmm[[CC]YY][.ss]
其中MM為月份。 DD為日 hh為小時 mm為分鐘 CC為年份前兩位數字 YY為年份的后兩位數字
ss為秒數。
-d datestr //顯示datestr中所設置的時間(非系統時間)
–help //顯示輔助信息
-s datestr //將系統時間設為datestr中說設定的時間
-u //顯示目前的格林尼治時間
–version //顯示版本號
舉例:
-
顯示時間后,跳行然后再顯示日期:
[root@localhost ~]# date +%T%n%x
19:52:31
08/02/2016
[root@localhost ~]#
2. 顯示月份日數
[root@localhost ~]# date +%B%d
August02
[root@localhost ~]#
3.顯示日期和設定時間(12:34:56)
[root@localhost ~]# date
Tue Aug 2 20:08:17 CST 2016
[root@localhost ~]# clock
Tue 02 Aug 2016 08:08:23 PM CST -0.923671 seconds
[root@localhost ~]# date;date -s 12:34:56
Tue Aug 2 20:08:37 CST 2016
Tue Aug 2 12:34:56 CST 2016
[root@localhost ~]#
當我們不希望出現無意的0時,比如(1999/03/07)則能在標記中插入 “-”符號,比如說:date +%-H:%-M:%-S
舉例:原本顯示的是08:09:04 而變為 8:9:4
只有取得權限者(比如root)才能設定系統時間,我們應該注意,clock -w 來將系統時間寫入CMOS,這樣下次重新啟動開機時。系統時間才會持續保持最新的正確值。
ntp: 時間同步:
linux系統下默認安裝了ntp服務,手動進行ntp同步,如下:
ntpdate ntp 1.n1.net
date命令還可以獲得給定日期是星期幾?
舉例:
[root@localhost ~]# date -d "nov 22"
Tue Nov 22 00:00:00 CST 2016
[root@localhost ~]#
練習:
相對于今天,兩個星期之后的日期
[root@localhost ~]# date -d '2 weeks'
Tue Aug 16 20:21:34 CST 2016
[root@localhost ~]#
下周一的日期
[root@localhost ~]# date -d 'next monday'
Mon Aug 8 00:00:00 CST 2016
[root@localhost ~]#
明天的日期
[root@localhost ~]# date -d 'last-day'
Mon Aug 1 20:22:48 CST 2016
[root@localhost ~]#
或
[root@localhost ~]# date -d tomorrow
Wed Aug 3 20:25:11 CST 2016
[root@localhost ~]#
上月是幾月
[root@localhost ~]# date -d last-month +%Y%m%d
20160702
[root@localhost ~]#
下月是幾月
[root@localhost ~]# date -d next-month +%Y%m%d
20160902
[root@localhost ~]#
昨天的日期
[root@localhost ~]# date -d last-day +%Y%m%d
20160801
[root@localhost ~]#
30天前的日期 //使用ago可以看到過去的日期
[root@localhost ~]# date -d '30 days ago'
Sun Jul 3 20:28:05 CST 2016
[root@localhost ~]#
還可以使用負數,以得到相反的日期
舉例:
相對于12月,14這個月前兩周的日期:
[root@localhost ~]# date -d 'dec 14 -2 weeks'
Wed Nov 30 00:00:00 CST 2016
[root@localhost ~]#
原創文章,作者:NddTx99521,如若轉載,請注明出處:http://www.www58058.com/28995