自python中的isodate时间戳以来的时间

时间:2013-09-23 15:03:30

标签: python datetime time

是的,这应该是一个编程101类型的问题,但我似乎已经让自己陷入了一个又一个的兔子洞。

我有一个数据对象,其时间戳为iso格式。所以它看起来像这样:“2013-09-19T21:37:04Z”

我需要确定过去的时间戳是否少于30分钟。

我尝试过这样的事情:

timeStamp="2013-09-19T21:37:04Z"
now=datetime.datetime.now()
age=now-timeStamp
if age < (30*60)
    doStuff()

加上一堆变种。但我认为我正在努力完成一项简单的任务。

如何判断时间戳是否超过30分钟?

2 个答案:

答案 0 :(得分:3)

您必须先将timeStamp转换为日期时间对象。

timeStamp="2013-09-19T21:37:04Z"
timeStamp_dt = datetime.datetime.strptime(timeStamp, '%Y-%m-%dT%H:%M:%SZ')
now = datetime.datetime.now()
age = now - timeStamp_dt
if age < datetime.timedelta(minutes=30):
    doStuff()

这不会考虑时区。也许它可以改进。

答案 1 :(得分:0)

您也可以使用time.clock

start = time.clock()
#... some steps
if time.clock() - start < 30 * 60:
    doStuff()

因为你需要使用日期时间;这个应该工作:

start = datetime.datetime.now()
#...some steps
if ((datetime.now() - start).seconds < 30 * 60:
    doStuff()