如何比较python中的两个时间字段

时间:2014-12-11 05:31:25

标签: python string unix

我必须比较两个时间字段字符串,如"20141020@023158.000033@EDT"。如何在python中最佳地比较它们?

我想对类型为string的字段进行>=类型比较。

val1 = "20141020@030047.006710@EDT"
val2 = "20141020@030047.006710@EDT"

if val1 > = val2:
    <do something>  

4 个答案:

答案 0 :(得分:0)

使用datetime模块。

使用datetime.datetime.strptime将字符串转换为日期,然后使用>=进行比较。

答案 1 :(得分:0)

import time
from time import gmtime, strftime
currentTime=strftime("%Y-%m-%d %H:%M:%S", gmtime())
print currentTime
time.sleep(5) 
SecondTime=strftime("%Y-%m-%d %H:%M:%S", gmtime())
print SecondTime
from dateutil.parser import parse
parseSecondTime = parse(SecondTime)
parseCurrentTime = parse(currentTime)
diffOfTime = parseSecondTime - parseCurrentTime
timeDifference=diffOfTime.total_seconds()
print timeDifference
if timeDifference>0:
    print 'SecondTime is greater'
else:
    print 'Current Time is Greater'

答案 2 :(得分:0)

以下内容应该可以解决问题。

import time

val1 = "20141020@023158.000033@EDT"
val2 = "20141020@030047.006710@EDT"

a = time.strptime(val1, '%Y%m%d@%H%M%S.%f@%Z')
b = time.strptime(val2, '%Y%m%d@%H%M%S.%f@%Z')
if a >= b:
    <do something>

答案 3 :(得分:0)

import datetime    
t=datetime.datetime.strptime("20141020@030047.006710@EDT","%Y%m%d@%H%M%S.%f@%Z")    

datetime对象支持使用&gt; =进行直接比较。

标准python lib可能无法很好地处理时区,您可能需要一些像pytz这样的第三方模块