[Datetime-SIG] A local timezone class

Akira Li 4kir4.1i at gmail.com
Mon Aug 31 11:56:03 CEST 2015


Guido van Rossum <guido at python.org> writes:

> I've written a simple class that implements a local timezone tzinfo object,
> deferring to what the time module exposes about the local zone.
>
> https://gist.github.com/gvanrossum/ef201fe313719305c4c7
>
> There are two variations: one for systems that support tm_gmtoff and
> tm_zone, one for systems without those.
>
> Output of the test program:
>
> BetterLocalTimeZone
> Fri Aug 28 15:50:22 2015 PDT (-0700)
> Wed Feb 24 15:50:22 2016 PST (-0800)
>
> I'm not entirely sure why we didn't add this to the stdlib ages ago. (Maybe
> out of a sense of perfectionism, since time.localtime() may be wrong for
> dates in the past or future where different DST rules or a different
> standard offset apply? But why would we care, if we're fine with the time
> module's behavior?)

If tm_gmtoff, tm_zone attributes are not available then time module does
not provide a way to get correct tzname [1]. In particular,
datetime.astimezone() may fail to return a correct tzname due to that [2]

[1] http://bugs.python.org/issue22798
[2]
https://mail.python.org/pipermail/datetime-sig/2015-August/000471.html


More information about the Datetime-SIG mailing list