[Datetime-SIG] pytz vs. PEP 495 Was: PEP-431/495
Ethan Furman
ethan at stoneleaf.us
Mon Aug 24 21:05:37 CEST 2015
On 08/24/2015 10:16 AM, Alexander Belopolsky wrote:> PEP 495 takes a different approach:
> >>> from test.datetimetester import Eastern2
> >>> datetime(2004, 4, 4, 2, first=True, tzinfo=Eastern2).astimezone().isoformat()
> '2004-04-04T03:00:00-04:00'
> >>> datetime(2004, 4, 4, 2, first=False, tzinfo=Eastern2).astimezone().isoformat()
> '2004-04-04T01:00:00-05:00'
>
> A post-PEP 495 timezone conversion faced with a missing time is required to return
> a valid time. This is similar to the way C mktime works in most implementations.
> If you give it a struct tm representing a time from a DST gap - it will "normalize"
> it by changing tm_hour up or down depending on the tm_isdst value.
I would be much happier about this if:
>>> datetime(2004, 4, 4, 2, first=None, tzinfo=Eastern2).astimezone().isoformat()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File ".../pytz/tzinfo.py", line 327, in localize
raise NonExistentTimeError(dt)
NonExistentTimeError: 2004-04-04 02:00:00
Giving the programmer an easier option to use if they want an exception.
--
~Ethan~
More information about the Datetime-SIG
mailing list