summaryrefslogtreecommitdiff
path: root/django/db/backends/sqlite3/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/backends/sqlite3/base.py')
-rw-r--r--django/db/backends/sqlite3/base.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index fbad8039d8..6f5168f159 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -434,14 +434,11 @@ def _sqlite_datetime_parse(dt, tzname=None, conn_tzname=None):
if conn_tzname:
dt = dt.replace(tzinfo=timezone_constructor(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
+ tzname, sign, offset = backend_utils.split_tzname_delta(tzname)
+ 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, timezone_constructor(tzname))
return dt