很多shell指令碼裡面需要列印不同格式的時間或日期,以及要根據時間和日期執行操作。延時通常用於指令碼執行過程中提供一段等待的時間。日期可以以多種格式去列印,也可以使用命令設定固定的格式。在類unix系統中,日期被儲存為乙個整數,其大小為自世界標準時間(utc)2023年1月1日0時0分0秒起流逝的秒數。
date命令的功能是顯示和設定系統日期和時間。
date命令中各選項的含義分別為:
示例
#格式化輸出
$> 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進度條的指令碼演示在指令碼中生成延時。
#!/bin/bash
b=''
for ((i=0;$i<=100;i++))
do printf "progress:[%-100s]%d%%\r" $b $i
sleep 0.1
b=#$b
done
echo
C 時間 日期格式大全
有時候我們要對時間進行轉換,達到不同的顯示效果 預設格式為 2005 6 6 14 33 34 如果要換成成200506,06 2005,2005 6 6或更多的該怎麼辦呢?我們要用到 datetime.tostring的方法 string,iformatprovider using system ...
aiml語言獲取時間,日期
關於aiml的python呼叫方法,參考 本文主要介紹如何設計.aiml檔案,輸出時間,日期.aiml內部有定以時間函式date,可以通過 date獲得函式data的輸出,通常我們還會為其定義乙個pattern,time date 這樣我們可以設計自己的pattern,而pattern的templa...
JS獲取當前時間日期
var mydate new date mydate.getyear 獲取當前年份 2位 mydate.getfullyear 獲取完整的年份 4位,1970 mydate.getmonth 獲取當前月份 0 11,0代表1月 mydate.getdate 獲取當前日 1 31 mydate.get...