原文連接:https://blog.csdn.net/qq_31382921/article/details/53405500linux
在linux 中date 有不少用法,在這裏我簡單介紹一下-d這個參數的使用方法以及使用例子:apache
date -d //顯示字符串所指的日期與時間。字符串先後必須加上雙引號
指定顯示的日期格式:ide
date <+時間日期格式>
例如:.net
date +"%Y-%m-%d" // 注意 :+ 和格式之間沒有空格 2016-11-30
有可能用到的格式code
%H 小時,24小時制(00~23) %I 小時,12小時制(01~12) %k 小時,24小時制(0~23) %l 小時,12小時制(1~12) %M 分鐘(00~59) %p 顯示出AM或PM %r 顯示時間,12小時制(hh:mm:ss %p) %s 從1970年1月1日00:00:00到目前經歷的秒數 %S 顯示秒(00~59) %T 顯示時間,24小時制(hh:mm:ss) %X 顯示時間的格式(%H:%M:%S) %Z 顯示時區,日期域(CST) %a 星期的簡稱(Sun~Sat) %A 星期的全稱(Sunday~Saturday) %h,%b 月的簡稱(Jan~Dec) %B 月的全稱(January~December) %c 日期和時間(Tue Nov 20 14:12:58 2012) %d 一個月的第幾天(01~31) %x,%D 日期(mm/dd/yy) %j 一年的第幾天(001~366) %m 月份(01~12) %w 一個星期的第幾天(0表明星期天) %W 一年的第幾個星期(00~53,星期一爲第一天) %y 年的最後兩個數字(1999則是99)
輸出昨天日期blog
date -d "1 day ago" +"%Y-%m-%d" 2016-11-29
2秒後輸出字符串
date -d "2 second" +"%Y-%m-%d %H:%M.%S" 2016-11-30 10:46.04
時間戳類型的 輸出對應的1234567890秒get
date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S" 2009-02-13 23:02:30
普通格式it
date -d "2016-11-30" +"%Y/%m/%d %H:%M.%S" 2016/11/30 00:00.00
apache格式轉換:class
date -d "Nov 30, 2016 12:00:37" +"%Y-%m-%d %H:%M.%S" 2016-11-30 12:00.37
格式轉換後時間遊走:
date -d "Nov 30, 2016 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S" 2014-11-30 00:00.37
加減操做
date +%Y%m%d //顯示前天年月日 date -d "+1 day" +%Y%m%d //顯示前一天的日期 date -d "-1 day" +%Y%m%d //顯示後一天的日期 date -d "-1 month" +%Y%m%d //顯示上一月的日期 date -d "+1 month" +%Y%m%d //顯示下一月的日期 date -d "-1 year" +%Y%m%d //顯示前一年的日期 date -d "+1 year" +%Y%m%d //顯示下一年的日期
若是須要計算一組命令花費多少時間
start=$(date +"%d")//以時間戳類型保存當前時間 // 執行須要計算的命令 end=$(date +"%d")//以時間戳類型保存當前時間 difference=$(( end - start )) //相減的結果就是命令執行完須要的時間