timezone support in dal, assumes local time is gmt time

This commit is contained in:
mdipierro
2012-08-21 09:06:21 -05:00
parent e70f8e8c51
commit 70fd93ac8f
2 changed files with 13 additions and 1 deletions

View File

@@ -1 +1 @@
Version 2.00.0 (2012-08-21 08:55:37) dev
Version 2.00.0 (2012-08-21 09:06:18) dev

View File

@@ -1702,6 +1702,16 @@ 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
date_part, time_part = (
str(value).replace('T',' ')+' ').split(' ',1)
(y, m, d) = map(int,date_part.split('-'))
@@ -1710,6 +1720,8 @@ class BaseAdapter(ConnectionPool):
time_items = map(int,time_parts)
(h, mi, s) = time_items
value = datetime.datetime(y, m, d, h, mi, s)
if dt:
value = value + dt
return value
def parse_blob(self, value, field_type):