Shell學習筆記_時間計算
在工作中,經常會寫一些指令碼,而關於日期的計算更是經常會碰到的問題,在網上搜尋並整理了下常用的日期計算指令碼。
############################################
linux 時間計算函式
############################################
自19700101000000以來的秒數
date "+%s"
昨天的日期
date -d '1 days ago' "+%Y%m%d%H%M%S"
明天的日期
date -d '1 days' "+%Y%m%d%H%M%S"
1小時前的時間
date -d '1 hours ago' "+%Y%m%d%H%M%S"
1小時後的時間
date -d '1 hours ' "+%Y%m%d%H%M%S"
1分鐘前的時間
date -d '1 minutes ago' "+%Y%m%d%H%M%S"
1分鐘後的時間
date -d '1 minutes ' "+%Y%m%d%H%M%S"
1秒前的時間
date -d '1 seconds ago' "+%Y%m%d%H%M%S"
1秒後的時間
date -d '1 seconds ' "+%Y%m%d%H%M%S"
將某一時間轉換為自19700101000000以來的秒數
date +%s -d '1990-01-01 01:01:01'
將時間戳轉鬼換為日期格式
date -d '1970-01-01 UTC '$1' seconds' +"%Y-%m-%d %T"
> date +%s
1302987605
> date -d '1970-01-01 UTC '1302987605' seconds' +"%Y-%m-%d %T"
2011-04-17 05:00:05
時間差計算方法
原理:同樣轉成時間戳,然後計算天,時,分,秒
echo $(($(($(date +%s -d '2010-01-02') - $(date +%s -d '2010-01-01 00:00:00')))/3600))
補充說明:
shell 單括號運算子號:
a=$(date);
等同於:a=`date`;
雙括號運算子:
a=$((1+2));
echo $a;
等同於:
a=`expr 1 + 2`
############################################
AIX 時間計算函式
############################################
strftime 將時間戳轉日期
awk 'BEGIN{print strftime("%Y-%m-%d",1303039233)}'
將日期轉為時間戳
awk 'BEGIN {printf("%d\n",mktime(2006" "8" "5" "15" "09" "0))}'
currentseconds=`awk 'BEGIN {printf("%d\n",systime())}'`
fiveminutesago=`expr $currentseconds - 300`
fiveminutesagotime=`awk -v fiveminutesago=$fiveminutesago 'BEGIN{print strftime("%Y%m%d%H%M%S",fiveminutesago)}'`
echo $fiveminutesagotime
在AIX上的AWK版本可能用不了strftime這些函式庫,可以使用Perl
perl 常用的例項
得到日期的全部
perl -MPOSIX -le 'print strftime "%c", localtime();'
Sat 21 Aug 2010 07:54:34 AM CST
得到普通的指定的日期
perl -MPOSIX -le 'print strftime "%a %d %b %Y %H:%M:%S %Z", localtime();'
Sat 21 Aug 2010 07:54:11 CST
得到一個小時以前的時間
perl -MPOSIX -le 'print strftime "%c", localtime(time()-3600);'
Sat 21 Aug 2010 06:55:54 AM CST
得到一天前的時間
perl -MPOSIX -le 'print strftime "%Y%m%d%H%M%S", localtime(time()-86400);'
研究下: mktime() strftime(), systime()等基本的日期函式的用法
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10248702/viewspace-694464/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell學習筆記筆記
- 雲端計算學習路線教程程式碼筆記:Shell程式設計筆記程式設計
- 【學習筆記】計算幾何筆記
- POSIX-shell學習筆記筆記
- shell程式設計學習筆記(二):Shell中變數的使用程式設計筆記變數
- shell指令碼程式設計學習筆記-運算子指令碼程式設計筆記
- shell指令碼程式設計學習筆記——變數指令碼程式設計筆記變數
- shell指令碼學習筆記-1指令碼筆記
- MongoDB 學習筆記之常用 shell 命令MongoDB筆記
- 雲端計算學習路線原始碼框架筆記:Shell程式設計之for迴圈結構原始碼框架筆記程式設計
- 計算機組成原理學習 筆記一計算機筆記
- 計算機網路 - 運輸層 - 學習筆記計算機網路筆記
- 小白計算機網路學習筆記(更新中)計算機網路筆記
- [豪の學習筆記] 計算機網路#003筆記計算機網路
- Nginx學習筆記3--(極客時間-陶輝)Nginx筆記
- 【Linux學習筆記29】shell指令碼基礎Linux筆記指令碼
- 計算機網路學習筆記:第二章計算機網路筆記
- 計算機網路傳輸層學習筆記---(四)計算機網路筆記
- 深入理解計算機系統-學習筆記 (1)計算機筆記
- Adaptive AUTOSAR 學習筆記 16 - 時間同步和網路管理APT筆記
- 計算機網路複習筆記計算機網路筆記
- go 學習筆記之工作空間Go筆記
- OpenCV 名稱空間學習筆記OpenCV筆記
- [計算化學]分子動力學筆記筆記
- 統計學習方法筆記筆記
- 設計模式學習筆記設計模式筆記
- 學習筆記-設計模式筆記設計模式
- 雲端計算開發學習路線:Linux檔案時間Linux
- 學習筆記 -《量子計算與程式設計入門》- 量子計算機硬體基礎筆記程式設計計算機
- 時間差計算
- PHP時間計算PHP
- Linux學習/TCP程式設計學習筆記LinuxTCP程式設計筆記
- C語言學習筆記——位運算C語言筆記
- 高效能運算學習筆記(1)筆記
- 美賽整理之Matlab的工程數學計算學習筆記(高等數學)Matlab筆記
- 計算機知識學習路線及書籍筆記索引計算機筆記索引
- shell 筆記筆記
- MySQL定時器EVENT學習筆記MySql定時器筆記
- shell指令碼程式設計筆記指令碼程式設計筆記