summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
Diffstat (limited to 'django/db')
-rw-r--r--django/db/backends/base/base.py11
-rw-r--r--django/db/backends/sqlite3/_functions.py10
2 files changed, 8 insertions, 13 deletions
diff --git a/django/db/backends/base/base.py b/django/db/backends/base/base.py
index 3b845ec9b3..5f2e7bcd4d 100644
--- a/django/db/backends/base/base.py
+++ b/django/db/backends/base/base.py
@@ -32,15 +32,6 @@ RAN_DB_VERSION_CHECK = set()
logger = logging.getLogger("django.db.backends.base")
-# RemovedInDjango50Warning
-def timezone_constructor(tzname):
- if settings.USE_DEPRECATED_PYTZ:
- import pytz
-
- return pytz.timezone(tzname)
- return zoneinfo.ZoneInfo(tzname)
-
-
class BaseDatabaseWrapper:
"""Represent a database connection."""
@@ -166,7 +157,7 @@ class BaseDatabaseWrapper:
elif self.settings_dict["TIME_ZONE"] is None:
return datetime.timezone.utc
else:
- return timezone_constructor(self.settings_dict["TIME_ZONE"])
+ return zoneinfo.ZoneInfo(self.settings_dict["TIME_ZONE"])
@cached_property
def timezone_name(self):
diff --git a/django/db/backends/sqlite3/_functions.py b/django/db/backends/sqlite3/_functions.py
index b590111ec5..c60549f8af 100644
--- a/django/db/backends/sqlite3/_functions.py
+++ b/django/db/backends/sqlite3/_functions.py
@@ -26,7 +26,6 @@ from math import (
)
from re import search as re_search
-from django.db.backends.base.base import timezone_constructor
from django.db.backends.utils import (
split_tzname_delta,
typecast_time,
@@ -36,6 +35,11 @@ from django.utils import timezone
from django.utils.crypto import md5
from django.utils.duration import duration_microseconds
+try:
+ import zoneinfo
+except ImportError:
+ from backports import zoneinfo
+
def register(connection):
create_deterministic_function = functools.partial(
@@ -111,14 +115,14 @@ def _sqlite_datetime_parse(dt, tzname=None, conn_tzname=None):
except (TypeError, ValueError):
return None
if conn_tzname:
- dt = dt.replace(tzinfo=timezone_constructor(conn_tzname))
+ dt = dt.replace(tzinfo=zoneinfo.ZoneInfo(conn_tzname))
if tzname is not None and tzname != conn_tzname:
tzname, sign, offset = split_tzname_delta(tzname)
if offset:
hours, minutes = offset.split(":")
offset_delta = timedelta(hours=int(hours), minutes=int(minutes))
dt += offset_delta if sign == "+" else -offset_delta
- dt = timezone.localtime(dt, timezone_constructor(tzname))
+ dt = timezone.localtime(dt, zoneinfo.ZoneInfo(tzname))
return dt