隨筆-314  評論-209  文章-0  trackbacks-0
          最近一段時間,在處理Shell 腳本時候,遇到時間的處理問題。 時間的加減,以及時間差的計算。 
           
          1。 時間加減
           
          這里處理方法,是將基礎的時間轉變為時間戳,然后,需要增加或者改變時間,變成 秒。 
           
          如:1990-01-01 01:01:01  加上 1小時 20分
          處理方法:
          a.將基礎時間轉為時間戳
          time1=$(date +%s -d '1990-01-01 01:01:01')
          echo $time1
          631126861 【時間戳】
           
          b.將增加時間變成秒
          [root@localhost ~]# time2=$((1*60*60+20*60))
          [root@localhost ~]# echo $time2
          4800
           
          c.兩個時間相加,計算出結果時間
          time1=$(($time1+$time2))
          time1=$(date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds");
          echo $time1
          1990-01-01 02:21:01
           
          2。時間差計算方法
           
          如:2010-01-01 與 2009-01-01 11:11:11 時間差
          原理:同樣轉成時間戳,然后計算天,時,分,秒
           
          time1=$(($(date +%s -d '2010-01-01') - $(date +%s -d '2009-01-01 11:11:11')));
          echo time1
           
          將time1 / 60 秒,就變成分了。
           
          補充說明:
          shell 單括號運算符號:
          a=$(date);
          等同于:a=`date`;
           
          雙括號運算符:
          a=$((1+2));
          echo $a;
          等同于:
          a=`expr 1 + 2`
          posted on 2017-07-06 16:33 xzc 閱讀(3352) 評論(1)  編輯  收藏 所屬分類: linux/unix

          評論:
          # re: shell時間處理、加減、以及時間差 2017-07-27 18:04 | xzc
          sync_time=`cat ods_data_msg_sync_time`
          diff_time=$(($(date +%s) - $(date +%s -d "${sync_time}")));  回復  更多評論
            
          主站蜘蛛池模板: 冕宁县| 舞钢市| 观塘区| 进贤县| 瑞安市| 中宁县| 张家港市| 苏尼特右旗| 武功县| 博野县| 伊川县| 佛冈县| 仪陇县| 彩票| 麻阳| 志丹县| 资阳市| 长宁县| 老河口市| 郎溪县| 宁城县| 抚宁县| 图木舒克市| 榆中县| 天门市| 黑龙江省| 北碚区| 汾西县| 罗定市| 宣武区| 宜章县| 安西县| 邹城市| 阿图什市| 阳谷县| 伊宁县| 石楼县| 阿城市| 吐鲁番市| 陵川县| 湖州市|