date
顯示或設置系統時間與日期
概要
1date [OPTION]... [+FORMAT]
2date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
主要用途
- 轉換時間到選定的格式,默認爲當前。
- 設置系統時間。
參數
format:輸出的時間格式。
1format可用的轉義序列如下:
2
3%% 百分號
4%a 當地縮寫的工作日名稱(例如,Sun)
5%A 當地完整的工作日名稱(例如,Sunday)
6%b 當地縮寫的月份名稱(例如,Jan)
7%B 當地完整的月份名稱(例如,January)
8%c 當地的日期和時間(例如,Thu Mar 3 23:05:25 2005)
9%C 世紀,和%Y類似,但是省略後兩位(例如,20)
10%d 一月中的一天(例如,01)
11%D 日期,等價於%m/%d/%y
12%e 一月中的一天,格式使用空格填充,等價於%_d
13%F 完整的日期;等價於%+4Y-%m-%d
14%g ISO標準計數週的年份的最後兩位數字
15%G ISO標準計數週的年份,通常只對%V有用
16%h 等價於%b
17%H 小時,範圍(00..23)
18%I 小時,範圍(00..23)
19%j 一年中的一天,範圍(001..366)
20%k 小時,使用空格填充,範圍(0..23),等價於%_H
21%l 小時,使用空格填充,範圍(1..12),等價於%_I
22%m 月,範圍(01..12)
23%M 分鐘,範圍(00..59)
24%n 換行符
25%N 納秒,範圍(000000000..000000000)
26%p 用於表示當地的AM或PM,如果未知則爲空白
27%P 類似於%p,但用小寫表示
28%q 季度,範圍(1..4)
29%r 當地以12小時表示的時鐘時間(例如,11:11:04 PM)
30%R 24小時每分鐘;等價於%H:%M
31%s 自協調世界時1970年01月01日00時00分以來的秒數
32%S 秒數,範圍(00..60)
33%t 水平製表符
34%T 時間;等價於%H:%M:%S
35%u 一週中的一天(1..7),1代表星期一
36%U 一年中的第幾周,週日作爲一週的起始(00..53)
37%V ISO標準計數週,該方法將週一作爲一週的起始(01..53)
38%w 一週中的一天(0..6),0代表星期天
39%W 一年中的第幾周,週一作爲一週的起始(00..53)
40%x 當地的日期表示(例如,12/31/99)
41%X 當地的時間表示(例如,23:13:48)
42%y 年份後兩位數字,範圍(00..99)
43%Y 年份
44%z +hhmm格式的數值化時區格式(例如,-0400)
45%:z +hh:mm格式的數值化時區格式(例如,-04:00)
46%::z +hh:mm:ss格式的數值化時區格式(例如,-04:00:00)
47%:::z 數值化時區格式,相比上一個格式增加':'以顯示必要的精度(例如,-04,+05:30)
48%Z 時區縮寫(如EDT)
49
50默認情況下,日期用零填充數字字段;以下可選的符號可以跟在'%'後面:
51
52- (連字符) 不要填充相應的字段。
53_ (下劃線) 使用空格填充相應的字段。
540 (數字0) 使用數字0填充相應的字段。
55+ 用數字0填充,未來年份大於4位數字則在前面加上'+'號。
56^ 允許的情況下使用大寫。
57# 允許的情況下將默認的大寫轉換爲小寫,默認的小寫轉換爲大寫。
58
59在任何標誌之後都有一個可選的字段寬度,如小數;然後是一個可選的修飾符,在可用的情況下,使用E來使用當地語言環境的替代表示,
60使用O來使用當地語言環境的替代數字符號。
選項
1長選項與短選項等價
2
3-d, --date=STRING 解析字符串並按照指定格式輸出,字符串不能是'now'。
4--debug 註釋已解析的日期,並將有疑問的用法發送到標準錯誤。
5-f, --file=DATEFILE 類似於--date; 一次從DATEFILE處理一行。
6-I[FMT], --iso-8601[=FMT] 按照ISO 8601格式輸出,FMT可以爲'date'(默認),'hours','minutes','seconds','ns'。例如:2006-08-14T02:34:56-06:00
7-R, --rfc-email 按照RFC 5322格式輸出,例如: Mon, 14 Aug 2006 02:34:56 -0600
8--rfc-3339=FMT 按照RFC 3339格式輸出,FMT可以爲'date', 'seconds','ns'中的一個,例如:2006-08-14 02:34:56-06:00
9-r, --reference=FILE 顯示文件的上次修改時間。
10-s, --set=STRING 根據字符串設置系統時間。
11-u, --utc, --universal 顯示或設置世界協調時(UTC)。
12--help 顯示幫助信息並退出。
13--version 顯示版本信息並退出。
返回值
返回狀態爲成功除非給出了非法選項或非法參數。
例子
1# 格式化輸出:
2date +"%Y-%m-%d"
32009-12-07
4
5# 輸出昨天日期:
6date -d "1 day ago" +"%Y-%m-%d"
72012-11-19
8
9# 2秒後輸出:
10date -d "2 second" +"%Y-%m-%d %H:%M.%S"
112012-11-20 14:21.31
12
13# 傳說中的 1234567890 秒:
14date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%M:%S"
15# 或者
16date -d@1234567890 +"%F %T"
17# 輸出結果
182009-02-13 23:02:30
19
20# 時間格式轉換:
21date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"
22# 輸出結果
232009/12/12 00:00.00
24
25# apache格式轉換:
26date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
27# 輸出結果
282009-12-05 00:00.37
29
30# 格式轉換後時間遊走:
31date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
32# 輸出結果
332007-12-05 00:00.37
34
35# 時間加減操作:
36date +%Y%m%d # 顯示年月日
37date -d "+1 day" +%Y%m%d # 顯示前一天的日期
38date -d "-1 day" +%Y%m%d # 顯示後一天的日期
39date -d "-1 month" +%Y%m%d # 顯示上一月的日期
40date -d "+1 month" +%Y%m%d # 顯示下一月的日期
41date -d "-1 year" +%Y%m%d # 顯示前一年的日期
42date -d "+1 year" +%Y%m%d # 顯示下一年的日期
43
44# 設定時間:
45date -s # 設置當前時間,只有root權限才能設置,其他只能查看
46date -s 20120523 # 設置成20120523,這樣會把具體時間設置成00:00:00
47date -s 01:01:01 # 設置具體時間,不會對日期做更改
48date -s "01:01:01 2012-05-23" # 這樣可以設置全部時間
49date -s "01:01:01 20120523" # 這樣可以設置全部時間
50date -s "2012-05-23 01:01:01" # 這樣可以設置全部時間
51date -s "20120523 01:01:01" # 這樣可以設置全部時間
52
53# 有時需要檢查一組命令花費的時間:
54start=$(date +%s)
55nmap wangchujiang.com &> /dev/null
56end=$(date +%s)
57difference=$(( end - start ))
58# 顯示執行時間
59echo $difference seconds.
60
61# 當你考慮輸出帶有時間的字符串時,例如(Current time: 2019/05/19):
62# 通常使用的方法:
63echo "Current time: $(date +"%Y/%m/%d")"
64# 另一種方法:
65suffix='Current time:'
66# 注意如果換成單引號就不能替換變量了。
67date +"${suffix} %Y/%m/%d"
注意
- 該命令是
GNU coreutils
包中的命令,相關的幫助信息請查看man -s 1 date
或info coreutils 'date invocation'
。
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。