隨筆-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}")));  回復  更多評論
            
          主站蜘蛛池模板: 大丰市| 屏山县| 罗平县| 双鸭山市| 襄汾县| 石家庄市| 韶山市| 肥东县| 山东省| 夏邑县| 连江县| 开封县| 古丈县| 清丰县| 德惠市| 乌拉特前旗| 尖扎县| 沙雅县| 根河市| 澄城县| 鹿邑县| 太湖县| 彩票| 绥德县| 新竹市| 拉萨市| 文昌市| 大洼县| 栾城县| 邹平县| 潞城市| 璧山县| 青河县| 江西省| 黑龙江省| 修水县| 茂名市| 班玛县| 永寿县| 博客| 九台市|