Closed alexwlchan closed 7 years ago
i think one second of accuracy is acceptable for most use cases :)
But think of the children*!
Seriously though, this looks pretty cool. Props for writing it. (I’ll stop trying to break it now.) 🙂
*’s children’s children’s … children’s need for second-level accurate, human-friendly datetime libraries in the future.
For those who care: the bug is caused by the float
type having insufficient precision to represent the underlying POSIX timestamp correctly. The further away you get from the POSIX epoch (in either direction), the more precision you'll lose in the timestamp.
I think this is OK.
IMHO this is a valid bug and should be addressed. Perhaps not with super high priority, but although it creeps up past a second in 2243, the inaccuracy is creeping up by various sub-second values on the way there.
The solution might not be all that hard, either. What about just storing the date internally as a Decimal
?
@glyph The inaccuracy creeps up past a microsecond in 2243; it only creeps up past a second in the year 285572427 or so. I don't think using Decimal
internally will help much, since datetime
is heavily involved here, and does not support conversion from Decimal
.
@mithrandi Thanks for the correction. The title of the bug did sound pretty extreme (gaining an "extra second") but time is weird and float time doubly so, so I didn't double check :).
Consider the following program:
This is a bug introduced somewhere in Maya – I see that Maya is using dateutil for the main machinery of its
parse
function, but if I try this with dateutil everything is fine:Environment details:
I don’t actually care if you fix this (by 2243, I’ll either be dead, or hopefully have better things to do with my time), but having found it, I thought I’d share.
Yes, I know I’m a terrible person for finding this.