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"