linux 時間戳及時間差計算

2022-06-01 20:06:10 字數 1666 閱讀 8775

使用時間戳轉換為具體格式的日期輸出,輸出格式為:date -d 』1970-01-01 utc timestamp seconds』 +」%y-%m-%d %t %z」

[root@mail161-centos ~]#date

wed oct 27 09:49:22 cst 2010

[root@mail161-centos ~]#date +%s

1288144164

[root@mail161-centos ~]#date -d 』1970-01-01 utc 1288144164 seconds』 +」%y-%m-%d %t %z」          

2010-10-27 09:49:24 +0800

得到明天的日期:date -d 「1 days」 +%d 或者 date -d 「tomorrow」 +%d

得到昨天的日期:date -d 「1 days ago」 +%d或者 date -d 「yesterday」 +%d

得到今天的日期:date -d 「0 days」 +%d或者date -d 「now」 %d

得到今天後n天的日期:date -d 「n days」 +%d

得到今天前n天的日期:date -d 「n days ago」 +%d

其中n為具體的某個整數

類似的用法有:date -d 「1 years」 +%y得到一年後是多少年

date -d 「1 years ago」 +%y得到一年前是多少年

如下是在處理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`

計算時間差

計算時間差的問題,之前用的datediff datediff 返回跨兩個指定日期的日期和時間邊界數。語法datediff datepart startdate enddate 引數datepart 是規定了應在日期的哪一部分計算差額的引數。下表列出了 microsoft sql server 識別的...

計算時間差

php 初始化變數 stardate substr gstardate,0,10 enddate substr genddate,0,10 共有多少天 start mktime 0,0,0,substr stardate,5,2 substr stardate,8,2 substr stardate...

時間差計算

1 計算相差多少天,多少小時,多少分,多少秒 long nd 1000 24 60 60 一天的毫秒數 long nh 1000 60 60 一小時的毫秒數 long nm 1000 60 一分鐘的毫秒數 long ns 1000 一秒的毫秒數 date nowdate new date times...