隨筆-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}")));  回復  更多評論
            
          主站蜘蛛池模板: 东安县| 宿州市| 龙岩市| 南昌县| 古交市| 揭西县| 靖宇县| 罗田县| 黔西| 南京市| 安阳县| 金川县| 巍山| 塔城市| 正镶白旗| 莱芜市| 婺源县| 广丰县| 玉环县| 黄大仙区| 宁国市| 茌平县| 涟水县| 治多县| 古蔺县| 襄城县| 渭源县| 遂溪县| 广宁县| 高邑县| 贵州省| 冀州市| 陆丰市| 盐池县| 金华市| 祁东县| 台北市| 临洮县| 托克托县| 安庆市| 浦城县|