| > "naive about timezones" That is what they said, but it is inaccurate All time should be UTC until it is displayed So a number without a timezone is seconds since epoch in UTC That is "default" not naive Some Python applications programmers made stupid mistakes so they change the library Golly. On the face of it Python is a mess. And it is everywhere. Golly |
A "naive" datetime is the one for which it is not known what the timezone is. The opposite is the one for which it is known. You can absolutely encode UTC timezones as seconds since epoch without any additional information (except that one bit that is needed to distinguish them from "naive" ones, which doesn't have to be a literal bit - it can be just a different data type, for example).
And, yes, it would sure be nice if we didn't have "naive" datetimes at all, and everything was always UTC. But there are too many datetimes recorded in the real world without enough information to recover the timezone and thus the precise UTC time, and they still need to be processed. The mistake was to make this the default behavior - but that is a very old one, dating back to earliest days of computing.