本文匯總了Linux shell中各種時間處理方法,包括時間顯示、時間轉換、時間設置等等,內含大量示例及輸出, 這裏記錄下來作為備忘,持續更新,禁止轉載。內容比較多,可以直接CTRL+F查找。
1. 顯示當前時間,按指定格式顯示時間。
date //顯示當前時間,輸出結果:Tue Mar 7 22:13:22 CST 2017
date +"%Y/%m/%d %H:%m:%S" //顯示指定格式時間,輸出結果:2017/03/07 22:03:05
//日期格式化符號說明如下:(原文地址:https://vimsky.com/zh-tw/article/1629.html)
%% 顯示一個百分號'%'。
%a 星期的簡稱, 如:Sun/Mon/Tue/Wed/...。
%A 星期完整名字,如:Sunday/Monday/...。
%b 月份簡稱,如:Jan/Feb/...。
%B 月份全稱,如: January/February。
%c 顯示當前日期和時間,如:Thu Mar 3 23:05:25 2005。
date等同於date +"%c"。
%C 世紀,如:現在是20世紀, 輸入date +"%C"顯示20。
%d 日期,如當前是8號,則顯示:08。
%D 完整日期,date +"%D"相當於date +"%m/%d/%y", 如:03/07/17(2017年3月7號)。
%e 日期,用空格補全,而不是0, 如當前日期:7號,則顯示" 7"。date +"%e" 相當於 date +"%_d"
%F 完整日期,相當於:date +"%Y-%m-%d", 輸出:2017-03-07。
%g 年份後2位,如果是2017, 則為:17。
%G 年份全4位,如2017。
%h 月份簡稱,如:Jan/Feb/Mar, 跟%b相同。
%H 小時 (00/01/02/..23),24小時製。
%I 小時 (01/02/..12), 12小時製。
%j 一年的第幾天 (001/002/..366)。
%k 小時,填充空格, 如 ( 0/ 1/ 2/..23); 相當於%_H。
%l 小時, 填充空格 ( 1/ 2/ 3/ ..12); 相當於 %_I。
%m 月份 (01/02/03/..12)。
%M 分鍾(00/01/02/..59)。
%n 換行。date +"%d%n%d", 將會分成兩行分別顯示日期。
%N 納秒 (000000000/000000001/..999999999)。
%p AM/PM, 即上午或者下午。
%P 跟%p意思一樣, 不過是小寫字母,即am/pm。
%r 顯示12小時製的當前時間,如:10:48:05 PM。
%R 24小時製的當前時間和分鍾,相當於: %H:%M,22:49。
%s 從1970-01-01 00:00:00 UTC開始的秒數,如:1488898232(對應時間:Tue Mar 7 22:50:32 CST 2017),相當於日期轉時間戳。
%S 秒 (00/01/02/..60)。
%t 一個tab鍵,製表符。
%T 當前時間,相當於: %H:%M:%S。如:22:52:07。
%u 星期中的第幾天 (1/2/..7); 1是星期一。
%U 一年中的第幾個星期(00..53),星期天作為一個星期的第一天。
%V 一年中的第幾個星期(ISO標準)(01..53),星期一作為一個星期的第一天。
%w 星期中的第幾天 (0..6); 0是星期天。
%W 一年中的第幾個星期 (00..53),星期一作為一個星期的第一天。
%x 當前日期 (例如: 03/07/17)。
%X 當前時間(例如: 23:13:48)。
%y 年的後兩位 (00/02/..99)。
%Y 年,如:2017。
%z +hhmm 數字時區(例如:北京:+0800)。
%:z +hh:mm 數字時區(例如:北京:+08:00)。
%::z +hh:mm:ss 數字時區 (例如:北京:+08:00:00)。
%:::z numeric time zone with : to necessary precision (e.g., -04, +05:30)。
%Z 字母時區縮寫 (如, CST)。
2. 時間數字轉字符串,時間整數轉字符串,時間戳轉字符串,數字和字符串時間轉換。
date --date @1488899583 //將從1970-01-01 00:00:00 UTC開始的秒數,轉為字符串時間,1488899583這個整數秒轉為字符串時間:Tue Mar 7 23:13:03 CST 2017。
date --date @"1488899583" //同上,即時間戳轉字符串,或者整數秒轉字符串時間。
date +"%s" //日期轉時間戳,日期轉整數。原文地址:https://vimsky.com/zh-tw/article/1629.html
3. 設置當前時間
date -s "2017/05/08 23:28:13" //設置日期和時間。(原文地址:https://vimsky.com/zh-tw/article/1629.html)
date -s "2017/05/08" //設置日期(注意,時間會同時被設置為00:00:00,慎用)。
date -s "23:28:13" //設置時間。
4. 時間解析,將輸入的字符串解析為時間
date -d "20170305" //解析日期, 輸出:Sun Mar 5 00:00:00 CST 2017。
date -d "03/05/2017" //解析日期,輸出同上。原文地址:https://vimsky.com/zh-tw/article/1629.html
date -d "2017/03/05 11:12:13" //解析日期和時間, 輸出: Sun Mar 5 11:12:13 CST 2017。
date -d "2017-03-05 21:12:17" +"%s" //將輸入時間轉為時間戳,輸出:1488719537。
date -d "2017-03-05 21:12:17" +"%Y/%m/%d %H:%M:%S" //時間格式轉換,將輸入日期轉換為自定義格式。
5. 時間運算,時間加減運算
//時間加減運算,可以直接用-d命令結合year/month/day/hour/minute/second, 單複數都行
date -d "+1 days" //明天,當前時間加1天。
date -d "+2 days" //後天,當前時間加2天。
date -d "+15 days" //半個月之後,當前時間+15天。
date -d "+10 days" +"%Y%m%d %H:%M:%S" 當前時間加10天,並按指定格式輸出。
date -d "-1 days" //昨天,當前時間減1天。
date -d "-2 days" //前天,當前時間減2天。
date -d "2017/03/05 +1 days" //指定日期加1天。
date -d "2017/03/05 -1 days" //指定日期減1天。
date -d "2017/03/08 +600 seconds" //指定日期加600秒。
date -d "2017/03/08 -600 seconds" //指定日期減600秒。
date -d "2017/03/08 +600 minutes" //指定日期加600分鍾。
date -d "2017/03/08 -600 minutes" //指定日期減600分鍾。
date -d "2017/03/08 +10 year" //指定日期加10年。
date -d "Tue Mar 10 14:12:13 CST 2015 +1 days" //指定日期時間,加一天。
date -d "15:21:11 03/18/2017 -1 days" //指定日期時間,減一天。注:時間放在日期的後麵目前似乎不可用。
6. 待續。。。
本文 《Linux shell時間處理大全》 由純淨的天空收集整理,持續更新,歡迎收藏,禁止轉載。