在Python中获取两个日期时间对象之间的分钟差异

4

我有两个由Python中的strptime创建的datetime对象:

date_string = "Wed, 18 Dec 2013 09:30:00 GMT"
date = datetime.datetime.strptime(date_string, "%a, %d %b %Y %H:%M:%S %Z")

并且

end_date_string = "Wed, 18 Dec 2013 10:15:00 GMT"
end_date = datetime.datetime.strptime(end_date_string, "%a, %d %b %Y %H:%M:%S %Z")

日期时间对象已成功创建,因此我获得了。
>>>date
datetime.datetime(2013, 12, 18, 9, 30)
>>>end_date
datetime.datetime(2013, 12, 18, 10, 15)

我想计算两个日期时间之间相差的分钟数。我可以这样做:
diff = end_date - date   

并且我得到了。
 datetime.timedelta(0)

所以它说它们是相同的日期?完全没有区别吗? 同时秒数属性为零

>>>diff.seconds
0

如何使它正常工作?

你使用的是哪个版本的Python? - inspectorG4dget
无法复现。复制并粘贴您的代码会得到 datetime.timedelta(0, 2700) - Daniel Roseman
2
(datetime.datetime(2013, 12, 18, 10, 15) - datetime.datetime(2013, 12, 18, 9, 30)).seconds 会输出 2700。请再次检查您的代码? - neuront
该死...我也遇到了这个问题....但我是从Idle中复制粘贴到这里的,结果在Idle中不起作用,然后又从这里复制粘贴到Idle中就可以了....这是怎么回事啊!!...抱歉各位 - Apostolos
2个回答

7
import datetime

date_string = "Wed, 18 Dec 2013 09:30:00 GMT"
date = datetime.datetime.strptime(date_string, "%a, %d %b %Y %H:%M:%S %Z")
end_date_string = "Wed, 18 Dec 2013 10:15:00 GMT"
end_date = datetime.datetime.strptime(end_date_string, "%a, %d %b %Y %H:%M:%S %Z")
print (end_date-date).total_seconds()

提供
2700.0

2
.total_seconds() 更好一些... 它也考虑了天数。 - mgilson
是的,它可以,但我并没有像你一样创建datetime对象,而是使用strptime,并且它显示为零。 - Apostolos
@Apostolos - 即使使用strptime,Python 2.7.2也能给出正确的结果。 - Andrew Walker
是的,它最终会运行...也许是我忽略了什么...尽管我直接从IDLE复制并粘贴了代码...无论如何...谢谢大家。 - Apostolos
感谢您尝试解决其实并不存在的问题,我会将所有积分都奖励给您... :) - Apostolos

1

有点奇怪,我得到了正确的结果:

>>> date_string = "Wed, 18 Dec 2013 09:30:00 GMT"
>>> date = datetime.datetime.strptime(date_string, "%a, %d %b %Y %H:%M:%S %Z")
>>> end_date_string = "Wed, 18 Dec 2013 10:15:00 GMT"
>>> end_date = datetime.datetime.strptime(end_date_string, "%a, %d %b %Y %H:%M:%S %Z")
>>> diff = end_date - date
>>> diff
datetime.timedelta(0, 2700)
>>> diff.seconds
2700

这是整个代码吗?


是的...我从IDLE复制并粘贴了(请参见上面的评论)...现在可以工作了...不知道出了什么问题... - Apostolos
可能只是日期或结束日期的错误赋值。 - 6160

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接