【问题标题】:Get the difference between two datetime objects in minutes in python在python中以分钟为单位获取两个日期时间对象之间的差异
【发布时间】:2013-12-17 10:36:40
【问题描述】:

我有两个由 Python 中的 strptime 创建的日期时间对象:

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?
  • 无法重现。复制并粘贴您的代码会得到datetime.timedelta(0, 2700)
  • (datetime.datetime(2013, 12, 18, 10, 15) - datetime.datetime(2013, 12, 18, 9, 30)).seconds 产生2700。再次检查您的代码?
  • 该死的......对我来说也是......但是我在这里从空闲复制并粘贴,并且在空闲时没有工作,然后从这里复制并粘贴到空闲并工作...... .what the....!!...对不起,伙计们

标签: python datetime timedelta


【解决方案1】:
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

【讨论】:

  • .total_seconds() 会更好......它也占了几天。
  • 是的,但我没有像你那样创建日期时间对象,我使用的是 strptime,它显示为零
  • @Apostolos - python 2.7.2 给出了正确的结果,即使使用 strptime
  • 是的,它最终会......也许我忽略了一些东西......虽然我确实直接从空闲复制并粘贴了代码......无论如何......谢谢你们
  • 给你所有的分数只是为了解决我不存在的问题......:)
【解决方案2】:

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

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

这是整个代码吗?

【讨论】:

  • 是的......我从空闲复制并粘贴(见上面的评论)......现在工作......不知道它有什么......
  • 可能只是日期或 end_date 的错误分配
猜你喜欢
  • 2012-01-03
  • 2013-05-14
  • 2018-11-25
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多