timezone support in dal, assumes local time is gmt time
This commit is contained in:
2
VERSION
2
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
|
||||
|
||||
12
gluon/dal.py
12
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):
|
||||
|
||||
Reference in New Issue
Block a user