summaryrefslogtreecommitdiff
path: root/django/db/backends/base/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/backends/base/base.py')
-rw-r--r--django/db/backends/base/base.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/django/db/backends/base/base.py b/django/db/backends/base/base.py
index 42b4b178bf..b6800e5519 100644
--- a/django/db/backends/base/base.py
+++ b/django/db/backends/base/base.py
@@ -6,7 +6,10 @@ import warnings
from collections import deque
from contextlib import contextmanager
-import pytz
+try:
+ import zoneinfo
+except ImportError:
+ from backports import zoneinfo
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
@@ -23,6 +26,14 @@ from django.utils.functional import cached_property
NO_DB_ALIAS = '__no_db__'
+# 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."""
# Mapping of Field objects to their column types.
@@ -135,7 +146,7 @@ class BaseDatabaseWrapper:
elif self.settings_dict['TIME_ZONE'] is None:
return timezone.utc
else:
- return pytz.timezone(self.settings_dict['TIME_ZONE'])
+ return timezone_constructor(self.settings_dict['TIME_ZONE'])
@cached_property
def timezone_name(self):