This commit is contained in:
mdipierro
2012-08-31 15:38:37 -05:00
parent dba7247b44
commit 3f7749cf20
3 changed files with 16 additions and 13 deletions
+14 -11
View File
@@ -1793,18 +1793,21 @@ class BaseAdapter(ConnectionPool):
def parse_datetime(self, value, field_type):
if not isinstance(value, datetime.datetime):
if '+' in value:
value,tz = value.split('+')
h,m = tz.split(':')
dt = datetime.timedelta(seconds=3600*int(h)+60*int(m))
elif '-' in value:
value,tz = value.split('-')
h,m = tz.split(':')
dt = -datetime.timedelta(seconds=3600*int(h)+60*int(m))
else:
dt = None
try:
if '+' in value:
value,tz = value.split('+')
h,m = tz.split(':')
dt = datetime.timedelta(seconds=3600*int(h)+60*int(m))
elif '-' in value:
value,tz = value.split('-')
h,m = tz.split(':')
dt = -datetime.timedelta(seconds=3600*int(h)+60*int(m))
else:
dt = None
except: # invalid timezone format (should never happen)
pass
date_part, time_part = (
str(value).replace('T',' ')+' ').split(' ',1)
str(value)[:19].replace('T',' ')+' ').split(' ',1)
(y, m, d) = map(int,date_part.split('-'))
time_parts = time_part and time_part.split(':')[:3] or (0,0,0)
while len(time_parts)<3: time_parts.append(0)