[Python-Dev] Interop between datetime and mxDateTime

Guido van Rossum guido@python.org
Mon, 13 Jan 2003 23:02:55 -0500


> [Guido]
> >>> (Hm, I just found that utctimetuple() returns the same as timetuple()
> >>> when the tzinfo is None
> 
> [Tim]
> >> Yes.  Also if d.tzinfo is not None but d.tzinfo.utcoffset(d)
> >> returns 0 or None.
> 
> >>> -- that doesn't seem right.)
> 
> >> Because ...?
> 
> [Guido]
> > Because if utcoffset() returns None it's misleading to pretend to be
> > able to return a UTC tuple.

[Tim]
> So you would like to see instead ...?  An exception?

Probably -- None isn't very helpful IMO, but either one is probably
okay.

> You didn't mention the utcoffset() is None case at the start, just the
> tzinfo is None case.  Do you view those as being the same thing in the end?

Insofar as that the UTC is unknown in either case, yes.

> >> I'd rather get rid of utctimetuple(), supply a datetime.utc
> >> tzinfo subclass out of the box, and change the spelling of
> >>
> >>     d.utctimetuple()
> >>
> >> to
> >>
> >>     d.timetuple(tzinfo=utc)
> >>
> >> Similarly for datetime.now() vs datetime.utcnow().  The proliferation
> >> of ABCutcXYZ methods is confusing, especially since they return
> >> naive objects.
> 
> > Tell you what.  I sincerely doubt that we'll be able to agree on
> > useful semantics for the common base API.  /F's proposal doesn't map
> > well on datetime, and that pretty much kills the idea.
> 
> I tend to agree, but the comments about
> 
>     timetuple() vs utctimetuple()
>     now() vs utcnow()
>     fromtimestamp() vs utcfromtimestamp()
> 
> are about the current datetime API, not really related to /F's
> proposal.  Since datetime and datetimetz objects are no longer
> distinct, all spellings of timetuple(), now() and fromtimestamp()
> have an optional tzinfo argument now.  This seems to me to make the
> 3 additional utc spellings of these methods at least extravagant.
> The semantics of these things are all wrong anyway (as in the SF bug
> report about this).  I'd like to simplify this.

Please do, and don't feel constrained by /F's proposal.

--Guido van Rossum (home page: http://www.python.org/~guido/)