diff --git a/VERSION b/VERSION index e3399f1b..b7270891 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.00.0 (2012-08-21 08:55:37) dev +Version 2.00.0 (2012-08-21 09:06:18) dev diff --git a/gluon/dal.py b/gluon/dal.py index a1fdfa87..188b2550 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -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):