前一天的日期
date -d "1 day ago" +"%y%m%d"
前乙個月的日期
date -d "1 month ago" +"%y%m%d"
距離上乙個月少一天
date -d "-1 day ago 1 month ago" +"%y%m%d"
距離去年的今天差一天
date -d "1 day ago -1 year ago 1 month ago" +"%y%m%d"
下面是shell的例子:
daydel=`date -d "1 month ago" +%m%d` //乙個月前的日期
echo $daydel
date命令的功能是顯示和設定系統日期和時間。
date命令中各選項的含義分別為:
-d , --date 提供日期串作為輸入
-s , --set 設定日期格式
-u , --universal 顯示或設定通用時間
日期格式字串列表
%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 從2023年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)
示例#格式化輸出
$> date +"%y-%m-%d"
2009-12-07
#輸出昨天日期
$> date -d "1 day ago" +"%y-%m-%d"
2012-11-19
#2秒後輸出
$> date -d "2 second" +"%y-%m-%d %h:%m.%s"
2012-11-20 14:21.31
#傳說中的 1234567890 秒
$> date -d "1970-01-01 1234567890 seconds" +"%y-%m-%d %h:%m:%s"
2009-02-13 23:02:30
#普通轉格式
$> date -d "2009-12-12" +"%y/%m/%d %h:%m.%s"
2009/12/12 00:00.00
#apache格式轉換
$> date -d "dec 5, 2009 12:00:37 am" +"%y-%m-%d %h:%m.%s"
2009-12-05 00:00.37
#格式轉換後時間遊走
$>date -d "dec 5, 2009 12:00:37 am 2 year ago" +"%y-%m-%d %h:%m.%s"
2007-12-05 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 //顯示下一年的日期
#設定時間
date -s //設定當前時間,只有root許可權才能設定,其他只能檢視
date -s 20120523 //設定成20120523,這樣會把具體時間設定成空00:00:00
date -s 01:01:01 //設定具體時間,不會對日期做更改
date -s "01:01:01 2012-05-23" //這樣可以設定全部時間
date -s "01:01:01 20120523" //這樣可以設定全部時間
date -s "2012-05-23 01:01:01" //這樣可以設定全部時間
date -s "20120523 01:01:01" //這樣可以設定全部時間
有時需要檢查一組命令花費的時間,舉例:
#!/bin/bash
start=$(date +%s)
nmap www.1987.name &> /dev/null
end=$(date +%s)
difference=$(( end - start ))
echo $difference seconds.
shell獲取日期
1.通過shell獲取當前8位日期,並賦給變數,並且使用變數作為檔名,建立資料夾 ls date date y m d mkdir 獲取日期注意事項 date y m d 這個字串是被英文狀態下的esc下面那個鍵。獲取變數注意事項 必須有 與組成。2.獲取時分秒 date y m d h m s 3...
shell指令碼格式轉換
初學shell程式設計的研發人員通常都會遇到這樣的問題,在windows下編輯的shell指令碼放到linux環境下比如手機中執行時就會出一些莫名其妙的錯誤,及時是一些非常簡單的shell命令也會報錯。其實錯誤的原因只有乙個就是格式問題,在windows下編輯出的shell指令碼格式為dos格式,而...
Shell迴圈獲取日期
大於 gt greater than 小於 lt less than 大於或等於 ge greater than or equal 小於或等於 le less than or equal 不相等 ne not equal bin bash 倒序按天遍歷日期 傳入遍歷的開始時間和結束時間 startd...