[ python-Feature Requests-665194 ] datetime-RFC2822 roundtripping
SourceForge.net
noreply at sourceforge.net
Thu Dec 21 16:16:56 CET 2006
Feature Requests item #665194, was opened at 2003-01-09 13:24
Message generated for change (Comment added) made by akuchling
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=355470&aid=665194&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
>Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Walter Dörwald (doerwalter)
Assigned to: Nobody/Anonymous (nobody)
Summary: datetime-RFC2822 roundtripping
Initial Comment:
It would be good to have a simply way to convert
between datetime objects and RFC2822 style strings.
>From string to datetime is easy with
datetime.datetime(*email.Utils.parsedate(m)[:7]) (but
this drops the timezone), but the other direction seems
impossible. email.Utils.formatdate takes a timestamp
argument, but AFAICT there's no way to get a timestamp
out of a datetime object.
Of course the best solution (ignoring backwards
compatibility) would be for parsedate und formatdate to
return/accept datetime objects or for datetime to have
the appropriate methods.
----------------------------------------------------------------------
>Comment By: A.M. Kuchling (akuchling)
Date: 2006-12-21 10:16
Message:
Logged In: YES
user_id=11375
Originator: NO
Moving to feature requests.
----------------------------------------------------------------------
Comment By: Walter Dörwald (doerwalter)
Date: 2003-05-26 12:56
Message:
Logged In: YES
user_id=89016
time.strptime() is locale aware, but RFC1123 & RFC822
require english day and month names, so time.strptime()
can't be used as-is. (And of course time.strptime() only
works for formatting, not for parsing)
----------------------------------------------------------------------
Comment By: Brett Cannon (bcannon)
Date: 2003-05-23 18:46
Message:
Logged In: YES
user_id=357491
time.strptime doesn't solve your problem?
----------------------------------------------------------------------
Comment By: Walter Dörwald (doerwalter)
Date: 2003-01-13 08:05
Message:
Logged In: YES
user_id=89016
totimestamp() should be the inverse of fromtimestamp(), i.e.
foo.totimestamp() should be the same as
time.mktime(foo.timetuple()).
datetime.datetime.totimestamp() should raise OverflowError
iff time.mktime() raises OverflowError.
But as this may lose precision, I'd say it would be better,
if datetime supported RFC1123 conversion directly, i.e. two
methods frommime() and tomime(), that parse and format
strings like "Sun, 06 Nov 1994 08:49:37 GMT" (what
rfc822.parsedate() and rfc822.formatdate() do)
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2003-01-11 11:32
Message:
Logged In: YES
user_id=31435
Define what totimestamp() should do. The range of
timestamps supported by the *platform* C library (and so
indirectly by Python's time module) isn't defined by any
standard, and isn't easily discoverable either. It may or
may not work before 1970, may or may not after 2038.
datetime covers days far outside that range. Note that
even a double doesn't have enough bits of precision to
cover the full range of datetime values, either.
In contrast, ordinals are wholly under Python's control, so
we can promise surprise-free conversion in both directions.
All we can promise about timestamps is that if the platform
supports a timestamp for a time in datetime's range,
datetime can make sense of it.
----------------------------------------------------------------------
Comment By: Walter Dörwald (doerwalter)
Date: 2003-01-11 07:33
Message:
Logged In: YES
user_id=89016
OK, I'll mark this a feature request.
datetime has fromordinal() and toordinal(), it has
fromtimestamp(), so I'd say a totimestamp() method would be
a logical addition.
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2003-01-11 00:10
Message:
Logged In: YES
user_id=31435
You can get a timestamp like so:
>>> time.mktime(datetime.date(2002, 1, 1).timetuple())
1009861200.0
>>>
The dates for which this works depends on the platform
mktime implementation, though.
BTW, this sounds a lot more like a new feature request
than a bug!
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=355470&aid=665194&group_id=5470
More information about the Python-bugs-list
mailing list