两个日期之间python的整数差异

Tod*_*rry 13 python datetime date

我已经RTFM并在这里阅读了很多关于这个的问题和答案,并且很高兴昨天使用strftime和strptime,所以我发誓这应该有用,但它不是....

我只想要一个整数.不是"timedelta对象".不是"知道但可以清洗的对象"(参见我的RTFM).不是一个元组.不是字典.只是一个简单的怪异整数,所以我可以使用if语句和分支,并开心.请带上你的智慧之光,谢谢.

这就是我所拥有的

...
import datetime
mdate = "2010-10-05"
rdate = "2010-10-05"
mdate1 = datetime.strptime(mdate, "%Y-%m-%d")
rdate1 = datetime.strptime(rdate, "%Y-%m-%d")
delta =  datetime.timedelta.days(mdate1 - rdate1)
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

pmain.py:4: AttributeError: 'module' object has no attribute 'strptime'
(error hits in the 'mdate1..." line above)
Run Code Online (Sandbox Code Playgroud)

并且,这并不意味着我的三角洲线将会起作用 - 请看一下.

Mar*_*ers 31

你想获得classmethod datetime.datetime.strptime(),然后从结果timedelta中获取.days 属性:

import datetime

mdate = "2010-10-05"
rdate = "2010-10-05"
mdate1 = datetime.datetime.strptime(mdate, "%Y-%m-%d").date()
rdate1 = datetime.datetime.strptime(rdate, "%Y-%m-%d").date()
delta =  (mdate1 - rdate1).days
Run Code Online (Sandbox Code Playgroud)

所以你有一个datetime模块,它有一个datetime.datetime类,而后面又有一个datetime.datetime.strptime()方法.我还添加调用.date()以提取只是日期部分(结果是一个datetime.date实例); 这使得处理时间戳的差异略微小于24小时的倍数.

演示:

>>> import datetime
>>> mdate = "2010-10-05"
>>> rdate = "2010-10-05"
>>> mdate1 = datetime.datetime.strptime(mdate, "%Y-%m-%d").date()
>>> rdate1 = datetime.datetime.strptime(rdate, "%Y-%m-%d").date()
>>> delta =  (mdate1 - rdate1).days
>>> print delta
0
>>> type(delta)
<type 'int'>
Run Code Online (Sandbox Code Playgroud)

  • Perfet,Martijn - 和往常一样,您回答并解释并用您的答案使未来的编码人员受益。现在快乐快乐的代码 - 非常感谢! (2认同)
  • @George:添加验证它确实是一个`int`,只为你. (2认同)

小智 5

sign1['days'] = sign1['diff'] / np.timedelta64(1, 'D')
Run Code Online (Sandbox Code Playgroud)

我遇到了同样的问题,通过使用上面的语句解决了。我希望它有帮助。