[Python-ideas] Please reconsider the Boolean evaluation of midnight
Mark Dickinson
dickinsm at gmail.com
Fri Mar 7 14:07:15 CET 2014
On Thu, Mar 6, 2014 at 12:08 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> Now, let's consider the time with the *best* possible claim to being
> false: timestamp zero. How does that behave?
>
> [... snipped ...]
> So, unless I happen to live in UTC, it's highly unlikely that I'm
> going to infer from Python's *behaviour* that datetime.time() (unlike
> datetime.date() and datetime.datetime()) belong in the "number"
> category, rather than the "arbitrary object" category.
>
This one's even *more* fun if you live in the UK. I live on the Greenwich
Meridian (and I mean that quite literally: it goes through the middle of my
living room), and since the epoch was in January, well away from British
Summer Time, I shouldn't see any of those pesky timezone-related problems
that those poor underprivileged people living in non-UTC timezones see.
Right?
Here's Python 2.7 on my Mac laptop, whose timezone is set to London time:
>>> import datetime as dt
>>> bool(dt.datetime.fromtimestamp(0).time())
True
And on Windows (again with timezone set to the UK):
>>> import datetime as dt
>>> bool(dt.datetime.fromtimestamp(0).time())
False
Wait, what? It turns out that in January 1970, the UK government was in
the middle of an experimental change to a year-round GMT+1 timezone. Some
operating systems seem to be aware of that fact; some aren't.
Count me in the bool(time(0)) should be True camp, by the way.
--
Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20140307/5179e860/attachment.html>
More information about the Python-ideas
mailing list