我必须比较两个时间字段字符串,如"20141020@023158.000033@EDT"
。如何在python中最佳地比较它们?
我想对类型为string的字段进行>=
类型比较。
val1 = "20141020@030047.006710@EDT"
val2 = "20141020@030047.006710@EDT"
if val1 > = val2:
<do something>
答案 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这样的第三方模块