From 661316b066923493ff91d6d2aa92e463f595a6b1 Mon Sep 17 00:00:00 2001 From: Can Sarigol Date: Thu, 11 Nov 2021 09:57:50 +0100 Subject: Fixed #33279 -- Fixed handling time zones with "-" sign in names. Thanks yakimka for the report. Regression in fde9b7d35e4e185903cc14aa587ca870037941b1. --- django/db/backends/sqlite3/base.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'django/db/backends/sqlite3/base.py') 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 -- cgit v1.3