from datetime import datetime, timedelta
now = datetime.now()
then = datetime(2001, 1, 1)
delta = now-then
print(delta)
print(delta.days, delta.seconds)
print(delta.hours, delta.minutes)
给出以下错误:
6959天,16:09:27.863408
6959 58167
AttributeError:“datetime.timedelta”对象没有属性“小时”
AttributeError:'datetime.timedelta‘对象没有属性’has‘
它是一个bug还是一个特性?
发布于 2020-01-21 16:28:39
特性:timedelta
objects只有.days
、.seconds
和.microseconds
。
我认为这是因为有时日子是不规则的(例如,由于闰秒,而日期算术可以解释这一点),而分钟和小时可以很容易地从秒计算。可能会稍微好一些,但还是会有几个角落的案子。
发布于 2020-01-21 16:27:57
您可以这样检查所有属性:
>>> dir(delta)
['__abs__', '__add__', '__bool__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__radd__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rsub__', '__rtruediv__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', 'days', 'max', 'microseconds', 'min', 'resolution', 'seconds', 'total_seconds']
没有“小时”和“分钟”
https://stackoverflow.com/questions/59845224
复制相似问题