隨筆-314  評論-209  文章-0  trackbacks-0
          最近一段時間,在處理Shell 腳本時候,遇到時間的處理問題。 時間的加減,以及時間差的計算。 
           
          1。 時間加減
           
          這里處理方法,是將基礎的時間轉變?yōu)闀r間戳,然后,需要增加或者改變時間,變成 秒。 
           
          如: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 閱讀(3367) 評論(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}")));  回復  更多評論
            
          主站蜘蛛池模板: 黄大仙区| 进贤县| 宜州市| 廊坊市| 罗源县| 东港市| 永善县| 长寿区| 松原市| 贵阳市| 抚州市| 沅陵县| 体育| 手机| 东丰县| 尚志市| 广水市| 漳平市| 霍城县| 拉萨市| 海原县| 海伦市| 普洱| 蒙自县| 霞浦县| 漳浦县| 丽水市| 乐昌市| 富裕县| 剑川县| 新乡市| 栖霞市| 阳泉市| 且末县| 宝清县| 新宁县| 大宁县| 南阳市| 彭山县| 绿春县| 涞源县|