On 15-04-15, Lennart Regebro  wrote:
> On Wed, Apr 15, 2015 at 11:10 AM, Chris Angelico <ros...@gmail.com> wrote:
> > Bikeshed: Would arithmetic be based on UTC time or Unix time? It'd be
> > more logical to describe it as "adding six hours means adding six
> > hours to the UTC time", but it'd look extremely odd when there's a
> > leap second.
> 
> It would ignore leap seconds. If you want to call that unix time or
> not is a matter of opinion. Hm. I guess the internal representation
> *could* be EPOCH + offset, and local times could be calculated
> properties, which could be cached (or possibly calculated at
> creation).

I am on the fence about EPOCH + offset as an internal representation. On the 
one hand, it is conceptually cleaner than the horrible byte-packing that exists 
today, but on the other hand, it has implications for future implementations of 
leap-second-awareness. For instance, offset measures the difference between the 
local time and UTC. But is it honest-to-goodness leap-second aware UTC, or is 
it really Unix time? This could be solved by giving each tzinfo a pointer to 
the UTC from which it is offset, but that sounds like a can of worms we don't 
want to open. But if don't and we store EPOCH + offset, we can't add leap 
second awareness to UTC without corrupting all persisted aware datetimes.

Also, I didn't mention this before because I figured people were getting sick 
of my dumb idea, but another advantage of always caching the offset is that you 
can detect future datetimes that have been corrupted by zoneinfo changes. You 
need both absolute time and offset to be able to do this.

ijs
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to