diff --git a/Makefile b/Makefile index 71419c7c..f24006c1 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ update: wget -O gluon/contrib/simplejsonrpc.py http://rad2py.googlecode.com/hg/ide2py/simplejsonrpc.py echo "remember that pymysql was tweaked" src: - echo 'Version 2.0.3 ('`date +%Y-%m-%d\ %H:%M:%S`') stable' > VERSION + echo 'Version 2.0.4 ('`date +%Y-%m-%d\ %H:%M:%S`') stable' > VERSION ### rm -f all junk files make clean ### clean up baisc apps diff --git a/VERSION b/VERSION index 70a3046b..eec5a287 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.0.3 (2012-08-31 14:27:45) stable +Version 2.0.4 (2012-08-31 15:38:34) stable diff --git a/gluon/dal.py b/gluon/dal.py index 9f4f3c68..e8adb855 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -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)