mirror of
https://github.com/python/cpython.git
synced 2025-11-01 06:01:29 +00:00
resolve issue 2014
This commit is contained in:
parent
08923177b4
commit
b131f0468f
3 changed files with 33 additions and 11 deletions
|
|
@ -346,6 +346,20 @@ def boolean(value, _truefalse=(False, True)):
|
|||
# @param value The time, given as an ISO 8601 string, a time
|
||||
# tuple, or a integer time value.
|
||||
|
||||
def _strftime(value):
|
||||
if datetime:
|
||||
if isinstance(value, datetime.datetime):
|
||||
return "%04d%02d%02dT%02d:%02d:%02d" % (
|
||||
value.year, value.month, value.day,
|
||||
value.hour, value.minute, value.second)
|
||||
|
||||
if not isinstance(value, (TupleType, time.struct_time)):
|
||||
if value == 0:
|
||||
value = time.time()
|
||||
value = time.localtime(value)
|
||||
|
||||
return "%04d%02d%02dT%02d:%02d:%02d" % value[:6]
|
||||
|
||||
class DateTime:
|
||||
"""DateTime wrapper for an ISO 8601 string or time tuple or
|
||||
localtime integer value to generate 'dateTime.iso8601' XML-RPC
|
||||
|
|
@ -353,16 +367,10 @@ class DateTime:
|
|||
"""
|
||||
|
||||
def __init__(self, value=0):
|
||||
if not isinstance(value, StringType):
|
||||
if datetime and isinstance(value, datetime.datetime):
|
||||
self.value = value.strftime("%Y%m%dT%H:%M:%S")
|
||||
return
|
||||
if not isinstance(value, (TupleType, time.struct_time)):
|
||||
if value == 0:
|
||||
value = time.time()
|
||||
value = time.localtime(value)
|
||||
value = time.strftime("%Y%m%dT%H:%M:%S", value)
|
||||
self.value = value
|
||||
if isinstance(value, StringType):
|
||||
self.value = value
|
||||
else:
|
||||
self.value = _strftime(value)
|
||||
|
||||
def make_comparable(self, other):
|
||||
if isinstance(other, DateTime):
|
||||
|
|
@ -772,7 +780,7 @@ def dump_struct(self, value, write, escape=escape):
|
|||
if datetime:
|
||||
def dump_datetime(self, value, write):
|
||||
write("<value><dateTime.iso8601>")
|
||||
write(value.strftime("%Y%m%dT%H:%M:%S"))
|
||||
write(_strftime(value))
|
||||
write("</dateTime.iso8601></value>\n")
|
||||
dispatch[datetime.datetime] = dump_datetime
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue