Why does datetime.timedelta only have the attributes 'days' and 'seconds'?

MRAB python at mrabarnett.plus.com
Thu Apr 14 13:11:44 EDT 2022


On 2022-04-14 16:22, Jon Ribbens via Python-list wrote:
> On 2022-04-14, Paul Bryan <pbryan at anode.ca> wrote:
>> I think because minutes and hours can easily be composed by multiplying
>> seconds. days is separate because you cannot compose days from seconds;
>> leap seconds are applied to days at various times, due to
>> irregularities in the Earth's rotation.
> 
> That's an argument that timedelta should *not* have a 'days' attribute,
> because a day is not a fixed number of seconds long (to know how long
> a day is, you have to know which day you're talking about, and where).
> It's an undocumented feature of timedelta that by 'day' it means '86400
> seconds'.

When you're working only with dates, timedelta not having a 'days' 
attribute would be annoying, especially when you consider that a day is 
usually 24 hours, but sometimes 23 or 25 hours (DST).


More information about the Python-list mailing list