1. 程式人生 > >shell, python中比較兩個日期的先後

shell, python中比較兩個日期的先後

Shell中我們可以利用date命令比較兩個日期的大小,方法是先把日期轉換成時間戳格式,再進行比較。

date 的+%s可以將日期轉換成時間戳格式,看下面的例子:

#!/bin/bash 

date1="2008-4-09 12:00:00"

date2="2008-4-10 15:00:00"

date3="Aug 17 16:47:53 2011"

t1=`date -d "$date1" +%s` 

t2=`date -d "$date2" +%s` 

t3= date -d "$date3" +%s  

if [ $t1 > $t2 ]; then

    echo "$date1 > $date2"

elif [ $t1 = $t2 ]; then

    echo "$date1 == $date2"

else [$t1 < $t3]; then

    echo  $date1 < $date3"

fi

# 多種輸入格式都支援.

下面介紹下python中比較兩個日期大小的指令碼.

在實際工作中用到,以供後續參考及備忘

時間區間比較函式

import time

# 這裡比較l_time 是否在時間區間[start_t, end_t]中

def compare_time(l_time,start_t,end_t):

    s_time = time.mktime(time.strptime(start_t,'%Y%m%d%H%M')) # get the seconds for specify date

    e_time = time.mktime(time.strptime(end_t,'%Y%m%d%H%M'))

    log_time = time.mktime(time.strptime(l_time,'%Y-%m-%d %H:%M:%S'))

    if (float(log_time) >= float(s_time)) and (float(log_time) <= float(e_time)):

        return True

    return False

# 在用mktime時,注意import time 模組,否則會提示找不到改attribute.   輸入的時間格式必須跟自己的格式化串保持一致.

如時間: "2011-11-10 14:56:58"  定義格式串時應該為: "%Y-%m-%d %H:%M:%S"