linux shell獲取時間(2)

season0891發表於2014-01-14
例如,您需要了解兩星期以後的日期。如果您處於 Shell 提示符處,那麼可以迅速地得到答案: 
$ date -d ’2 weeks’ 
關於使用該命令,還有其他一些重要的方法。使用 next/last指令,您可以得到以後的星期幾是哪一天: 
$ date -d ’next monday’ (下週一的日期) 
$ date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%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(下個月是幾月) 
使用 ago 指令,您可以得到過去的日期: 
$ date -d ’30 days ago’ (30天前的日期) 
您可以使用負數以得到相反的日期: 
$ date -d ’dec 14 -2 weeks’ (相對:dec 14這個日期的兩週前的日期) 
$ date -d ’-100 days’ (100天以前的日期) 
$ date -d ’50 days’(50天后的日期) 
這個技巧非常有用,它可以根據將來的日期為自己設定提醒,可能是在指令碼或 Shell 啟動檔案中,如下所示: 
DAY=`date -d ’2 weeks’ +"%b %d"` 
if test "`echo $DAY`" = "Aug 16"; then echo ’Product launch is now two weeks away!’; fi 

############################## 

unix shell中的日期格式轉換 
$ t_t="Jul  1 21:29" 
$ date "+%G-%m-%d %H:%M:%S" -d "$t_t" # $t_t的格式是比較隨意的 
2008-07-01 21:29:00 
$ date +%b/%d/%G -d "2008-07-01" 
Jul/01/2008 

unix shell中的日期之間間隔的天數 
$ expr '(' $(date +%s -d "2008-07-02") - $(date +%s -d "2008-05-30") ')' / 86400 
33 
##存在bcdate的話,可以直接使用。 

shell中日期加減指定間隔單位 
增加36小時: 
$ a=`date +%Y-%m-%d` 
$ b=`date +%Y-%m-%d -d "$a +36 hours"` 
10天前: 
$ date -d "$a -10 days" 
Sun Jun 22 00:00:00 CST 2008 

以指定格式顯示檔案更改後最後日期,如yyyy-mm-dd hh24:mi:ss 
$ date "+%Y-%m-%d %H:%M:%S" -r test.bak 
2008-07-01 21:28:55

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-1070296/,如需轉載,請註明出處,否則將追究法律責任。

相關文章