隨筆-314  評(píng)論-209  文章-0  trackbacks-0
          最近一段時(shí)間,在處理Shell 腳本時(shí)候,遇到時(shí)間的處理問(wèn)題。 時(shí)間的加減,以及時(shí)間差的計(jì)算。 
           
          1。 時(shí)間加減
           
          這里處理方法,是將基礎(chǔ)的時(shí)間轉(zhuǎn)變?yōu)闀r(shí)間戳,然后,需要增加或者改變時(shí)間,變成 秒。 
           
          如:1990-01-01 01:01:01  加上 1小時(shí) 20分
          處理方法:
          a.將基礎(chǔ)時(shí)間轉(zhuǎn)為時(shí)間戳
          time1=$(date +%s -d '1990-01-01 01:01:01')
          echo $time1
          631126861 【時(shí)間戳】
           
          b.將增加時(shí)間變成秒
          [root@localhost ~]# time2=$((1*60*60+20*60))
          [root@localhost ~]# echo $time2
          4800
           
          c.兩個(gè)時(shí)間相加,計(jì)算出結(jié)果時(shí)間
          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。時(shí)間差計(jì)算方法
           
          如:2010-01-01 與 2009-01-01 11:11:11 時(shí)間差
          原理:同樣轉(zhuǎn)成時(shí)間戳,然后計(jì)算天,時(shí),分,秒
           
          time1=$(($(date +%s -d '2010-01-01') - $(date +%s -d '2009-01-01 11:11:11')));
          echo time1
           
          將time1 / 60 秒,就變成分了。
           
          補(bǔ)充說(shuō)明:
          shell 單括號(hào)運(yùn)算符號(hào):
          a=$(date);
          等同于:a=`date`;
           
          雙括號(hào)運(yùn)算符:
          a=$((1+2));
          echo $a;
          等同于:
          a=`expr 1 + 2`
          posted on 2017-07-06 16:33 xzc 閱讀(3352) 評(píng)論(1)  編輯  收藏 所屬分類: linux/unix

          評(píng)論:
          # re: shell時(shí)間處理、加減、以及時(shí)間差 2017-07-27 18:04 | xzc
          sync_time=`cat ods_data_msg_sync_time`
          diff_time=$(($(date +%s) - $(date +%s -d "${sync_time}")));  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 视频| 营山县| 偏关县| 台南市| 米脂县| 贵州省| 河曲县| 永州市| 米林县| 伊川县| 榆中县| 怀柔区| 盘锦市| 北海市| 安岳县| 永平县| 昂仁县| 巴南区| 贡觉县| 望城县| 宣城市| 林芝县| 湖南省| 革吉县| 项城市| 长子县| 霍城县| 长寿区| 德州市| 健康| 尤溪县| 凉山| 巨野县| 察雅县| 宁安市| 云梦县| 喀喇沁旗| 安化县| 彰化县| 灵石县| 鄄城县|