0

是的,这应该是一个编程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 分钟?

4

2 回答 2

4

您必须先将 timeStamp 转换为 datetime 对象。

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()

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

于 2013-09-23T15:05:30.903 回答
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()
于 2013-09-23T15:12:17.507 回答