diff options
| author | can <cansarigol@derinbilgi.com.tr> | 2019-06-12 16:35:06 +0300 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-06-13 09:29:43 +0200 |
| commit | fde9b7d35e4e185903cc14aa587ca870037941b1 (patch) | |
| tree | 6f55b844bc14561603e73e9185bc987466e57cac /django/db/backends/sqlite3/base.py | |
| parent | 3dca8738cbbbb5674f795169e5ea25e2002f2d71 (diff) | |
Fixed #30128 -- Fixed handling timedelta timezone in database functions.
Diffstat (limited to 'django/db/backends/sqlite3/base.py')
| -rw-r--r-- | django/db/backends/sqlite3/base.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index 24d07cc11a..f4184fce05 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -408,6 +408,14 @@ def _sqlite_datetime_parse(dt, tzname=None, conn_tzname=None): if conn_tzname: dt = dt.replace(tzinfo=pytz.timezone(conn_tzname)) if tzname is not None and tzname != conn_tzname: + sign_index = tzname.find('+') + tzname.find('-') + 1 + if sign_index > -1: + sign = tzname[sign_index] + tzname, offset = tzname.split(sign) + if offset: + hours, minutes = offset.split(':') + offset_delta = datetime.timedelta(hours=int(hours), minutes=int(minutes)) + dt += offset_delta if sign == '+' else -offset_delta dt = timezone.localtime(dt, pytz.timezone(tzname)) return dt |
