[Python-Dev] Status on PEP-431 Timezones
Alexander Belopolsky
alexander.belopolsky at gmail.com
Mon Jul 27 18:10:39 CEST 2015
On Mon, Jul 27, 2015 at 11:42 AM, Ryan Hiebert <ryan at ryanhiebert.com> wrote:
> > On Jul 27, 2015, at 10:37 AM, Alexander Belopolsky <
> alexander.belopolsky at gmail.com> wrote:
> >
> > On the other hand, these rare events are not that different from more or
> less regular DST
> > transitions. You still have either a non-existent or ambiguous local
> times interval and
> > you can resolve the ambiguity by adding 1 bit of information. The only
> question is what
> > should we call the flag that will supply that information? IMO, "isdst"
> is a wrong name
> > for dealing with the event I described above.
>
> While I see your point that isdst is the wrong name in that it doesn't
> describe what's actually happening in all cases, it is the most well known
> instance of the issue, and I personally think that using isdst for the
> other cases makes sense, and that they would disambiguate in the same
> direction that it would in a dst transition of the same type (clocks
> forward or backward).
Well, my specific proposal in [1] was to also change the semantics. The
proposed "which" flag would have the following
meaning:
1. If local time is valid and unambiguous, "which" is ignored.
2. If local time is ambiguous, which=0 means the first and which=1 means
the second (chronologically).
3. If local time is invalid, which=0 means the time extrapolated from
before the transition and
which = 1 means the time extrapolated from after the transition.
Note that these rules have some nice properties: if t is ambiguous, UTC(t,
which=0) < UTC(t, which=1)
and if t is invalid, UTC(t, which=0) > UTC(t, which=1). This property can
be used to take different
actions in those cases. The result for ambiguous t and which=0 has a
natural interpretation as time
specified by a user not aware of the clock change.
I think these rules are simpler and more natural than those for isdst which
takes 3 values: 0, 1 and -1 and
the rules for -1 vary between implementations. Under my proposal
unspecified "which" means which=0.
[1]: https://mail.python.org/pipermail/python-dev/2015-April/139099.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20150727/19750bda/attachment.html>
More information about the Python-Dev
mailing list