Shell腳本中date的用法小結
操作系統中時間管理是很重要的,也是很復雜的,首先要處理每個月不同的天數,每4年有一閏年,每400年少一閏,這樣才能處理星期幾的問題。順便提一下,在1752年的9月還少了11天,在Linux系統中可以用“cal”命令打印當年的年歷看看。
閒話少說,Linux中關於系統時間的管理離不開date命令,它除了顯示當前時間,還可以獲取其它時間,設置時間等。
Linux系統的時間是以時間戳來記錄的,即從1970年1月1日(00:00:00 GMT)以來的秒數,首先date可以實現字符串時間和時間戳的轉換:
date -d"2013-01-31 20:00:00" +%s
即為顯示指定時間的時間戳,而
date -d @1359643046 +"%Y-%m-%d %H:%M:%S"
就可以實現時間戳到字符串形式的轉換。命令中-d指定時間,+指定顯示時間的格式(還可以顯示ns哦,用%N就可以了)。
再來就是其它時間了,比如我想知道1999年3月4日是星期幾,這個問題也可以用date來實現:
date -d "1999-3-4" +"%A"
還可以顯示500年之後的明天呢,是星期幾當然也知道了:
date -d"500years"
500年前也一樣:
date -d"-500years"
date -d"500years ago"
你可以試試:
date -d"-500years ago"
2個月3天之後可以這樣寫:
date -d"+2month+3day"
最後,設置時間只需一個參數-s就行了。
獲取10分鐘之前的時間: date --date=“10 munites ago”
獲取10天之前的時間: date --date=“10 days ago”
獲取10分鐘之後的時間: date --date=“-10 munites ago”
獲取10天之後的時間: date --date=“-10 days ago”
這樣就實現了使用shell命令做日期的計算了