shell時間相減的函式 shell時間加減運算

2021-10-13 06:43:58 字數 1908 閱讀 3440

最近要寫乙個根據乙個初始時間戳距離當前日期的天數來做的業務的邏輯自動化處理,搜尋到下面這些常用日期加減法運算,值得記錄下

1。我需要運用的時間計算如下

如:初始時間戳為1382716418

time1=$(($(date +%s ) - 1382716418));

1382716418與當前日期相差的天數days=`$time1/86400|bc`

2。 下面是做乙個時間加法的詳細演示

這裡處理方法,是將基礎的時間轉變為時間戳,然後,需要增加或者改變時間變成秒。

如: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

c.兩個時間相加,計算出結果時間

time1=$(($time1+$time2))

time1=$(date+%y-%m-%d %h:%m:%s -d "@$time1" ); //將時間戳轉成日期時間

echo $time1

1990-01-01 02:21:01

溫馨小知識:

shell 單括號運算符號:

a=$(date);等同於:a=`date`;

雙括號運算子:

a=$((1+2)) 等同於a=`expr 1 + 2` 等同於a=`1+2|bc`

附加知識

[root@weibin-fedora var]# echo $(date --date='3 day')

2023年 11月 04日 星期五 01:25:44 cst

[root@weibin-fedora var]# echo $(date --date='3 day ago')

2023年 10月 29日 星期六 01:26:07 cst

[root@weibin-fedora var]# echo $(date --date='3 month')

2023年 02月 01日 星期三 01:26:20 cst

[root@weibin-fedora var]# echo $(date --date='3 month ago')

2023年 08月 01日 星期一 01:26:28 cst

[root@weibin-fedora var]# echo $(date --date='3 year')

2023年 11月 01日 星期六 01:26:42 cst

[root@weibin-fedora var]# echo $(date --date='3 year ago')

2023年 11月 01日 星期六 01:26:48 cst

[root@weibin-fedora var]# echo $(date --date='3 minute ')

2023年 11月 01日 星期二 01:22:20 cst

[root@weibin-fedora var]# echo $(date --date='3 minute ago')

2023年 11月 01日 星期二 01:26:20 cst

[root@weibin-fedora var]# echo $(date --date='3 hour ago')

2023年 10月 31日 星期一 22:30:11 cst

[root@weibin-fedora var]# echo $(date --date='3 hour')

2023年 11月 01日 星期二 04:30:24 cst

mySql時間相減的問題

剛寫了個功能,其中的一部分包括統計符合條件訂單的arrive time和receiving time的差值 想都沒多想 就直接 arrive time receiving time,結果超級離譜。笑哭 如下 看一下兩個時間差值 其實也就12分鐘,這裡的5255也不知道是什麼數值,秒也不是,毫秒也不對...

pandas 兩列時間相減換算為秒的方法

如下所示 pd.to datetime data data last o xlmc ezjdl data o xlmc o sjfcsj format h m s pd.to datetime data last o sjfcsjwww.cppcns.com format h m sezjdl dt...

Shell日期時間和時間戳的轉換

gitlab的備份檔案是以時間戳顯示的,類似 1438624820 gitlab backup.tar 為了更易於閱讀,想把檔名轉換成日期格式 2015 08 04 gitlab backup.tar 所以查詢了下shell裡時間轉換的方法,記錄如下備忘。date d 2015 08 04 00 0...