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"

 

有试过 from datetim import datetime,time , 但是没有成功,暂时没有考虑去解决.

 

 

你可能感兴趣的:(Python,Linux)