On Thu, Jul 23, 2015 at 12:22 PM, Lennart Regebro
It turns out it's very complex to solve this when internally storing the time as the local time. Basically you have to normalize the time (ie check if daylight savings have changed) when doing arithmetic, but normalize is doing arithmetic, and you get infinite recursion.
This is not true. Tim's analysis immortalized [1] at the end of the datetime.py file, shows that UTC to local mapping can be unambiguously recovered from the local to UTC rules using a simple finite algorithm. Tim assumes [2] that standard (non-DST) time offset is constant throughout the history, but this requirement can be relaxed to offset changing no more than once in any 48 hour period (if you generously allow timezones from -24 to 24 hours). Actually, it looks like I am repeating what I wrote back in April, so I'll stop with a reference [3] to that post. [1]: https://hg.python.org/cpython/file/v3.5.0b1/Lib/datetime.py#l1935 [2]: https://hg.python.org/cpython/file/v3.5.0b1/Lib/datetime.py#l1948 [3]: https://mail.python.org/pipermail/python-dev/2015-April/139171.html