天天看點

shell 日期處理

使用方式 :

date [-u] [-d datestr] [-s datestr] [--utc] [--universal]

[--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT]

[MMDDhhmm[[CC]YY][.ss]]

說明 :

date

可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加号後接數個标記,其中可用的标記清單如下

:

直接調用系統變量

擷取今天時期:`date +%Y%m%d` 或 `date

+%F` 或 $(date +%y%m%d)

擷取昨天時期:`date -d yesterday +%Y%m%d`

擷取前天日期:`date -d -2day +%Y%m%d`

依次類推比如擷取10天前的日期:`date -d -10day +%Y%m%d`

或n天前的 `date -d "n days ago" +%y%m%d`

明天:`date -d tomorrow +%y%m%d`

注意以上中間有空格

時間域 

% H 小時(00..23) 

% I 小時(01..12) 

% k 小時(0..23) 

% l 小時(1..12) 

% M 分(00..59) 

% p 顯示出AM或PM 

% r 時間(hh:mm:ss AM或PM),12小時 

% s 從1970年1月1日00:00:00到目前經曆的秒數 

% S 秒(00..59) 

% T 時間(24小時制)(hh:mm:ss) 

% X 顯示時間的格式(%H:%M:%S) 

% Z 時區 日期域 

日期方面 :

% a 星期幾的簡稱( Sun..Sat) 

% A 星期幾的全稱( Sunday..Saturday) 

% b 月的簡稱(Jan..Dec) 

% B 月的全稱(January..December) 

% c 日期和時間( Mon Nov 8 14:12:46 CST 1999) 

% d 一個月的第幾天(01..31) 

% D 日期(mm/dd/yy) 

% h 和%b選項相同 

% j 一年的第幾天(001..366) 

% m 月(01..12) 

% w 一個星期的第幾天(0代表星期天) 

% W 一年的第幾個星期(00..53,星期一為第一天) 

% x 顯示日期的格式(mm/dd/yy) 

% y 年的最後兩個數字( 1999則是99) 

% Y 年(例如:1970,1996等) 

注意:隻有超級使用者才有權限使用date指令設定時間,一般使用者隻能使用date指令顯示時間。

若是不以加号作為開頭,則表示要設定時間,而時間格式為 MMDDhhmm[[CC]YY][.ss],其中 MM 為月份,DD

為日,hh 為小時,mm 為分鐘,CC 為年份前兩位數字,YY 為年份後兩位數字,ss 為秒數

參數 :

-d datestr : 顯示 datestr 中所設定的時間 (非系統時間)

--help : 顯示輔助訊息

-s datestr : 将系統時間設為 datestr 中所設定的時間

-u : 顯示目前的格林威治時間

--version : 顯示版本編号

例子 :

顯示時間後跳行,再顯示目前日期 :

date '+%T%n%D'

顯示月份與日數 :

date '+%B %d'

顯示日期與設定時間(12:34:56) :

date --date '12:34:56'

注意 :

當你不希望出現無意義的 0 時(比如說 1999/03/07),則可以在标記中插入 - 符号,比如說 date

'+%-H:%-M:%-S' 會把時分秒中無意義的 0 給去掉,像是原本的 08:09:04 會變為

8:9:4。另外,隻有取得權限者(比如說 root)才能設定系統時間。

當你以 root 身分更改了系統時間之後,請記得以 clock -w 來将系統時間寫入 CMOS

中,這樣下次重新開機時系統時間才會持續抱持最新的正确值。