summaryrefslogtreecommitdiff
path: root/django/utils/timezone.py
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2018-06-28 09:26:41 -0400
committerTim Graham <timograham@gmail.com>2018-06-28 11:14:26 -0400
commit2ec151e35da93047acfeea1b79c27010f2cb8594 (patch)
tree69a307541d8690a06789623ecae15732d8d7af68 /django/utils/timezone.py
parent8c4b94d32d229109c17e050cab1f894d56e755da (diff)
Fixed #29514 -- Reverted "Used datetime.timezone.utc instead of pytz.utc for better performance."
This reverts commit 27ca5ce19f5f184018a61611c1bc319113b1d107 due to a regression.
Diffstat (limited to 'django/utils/timezone.py')
-rw-r--r--django/utils/timezone.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/django/utils/timezone.py b/django/utils/timezone.py
index 9870cd03a9..c1f0d70bc1 100644
--- a/django/utils/timezone.py
+++ b/django/utils/timezone.py
@@ -2,10 +2,9 @@
Timezone-related classes and functions.
"""
-import datetime
import functools
from contextlib import ContextDecorator
-from datetime import timedelta, tzinfo
+from datetime import datetime, timedelta, tzinfo
from threading import local
import pytz
@@ -53,8 +52,7 @@ class FixedOffset(tzinfo):
# UTC time zone as a tzinfo instance.
-# (Use utc = datetime.timezone.utc here when PY35 isn't supported.)
-utc = datetime.timezone(ZERO, 'UTC')
+utc = pytz.utc
def get_fixed_timezone(offset):
@@ -174,7 +172,7 @@ def template_localtime(value, use_tz=None):
This function is designed for use by the template engine.
"""
should_convert = (
- isinstance(value, datetime.datetime) and
+ isinstance(value, datetime) and
(settings.USE_TZ if use_tz is None else use_tz) and
not is_naive(value) and
getattr(value, 'convert_to_local_time', True)
@@ -221,7 +219,11 @@ def now():
"""
Return an aware or naive datetime.datetime, depending on settings.USE_TZ.
"""
- return datetime.datetime.now(utc if settings.USE_TZ else None)
+ if settings.USE_TZ:
+ # timeit shows that datetime.now(tz=utc) is 24% slower
+ return datetime.utcnow().replace(tzinfo=utc)
+ else:
+ return datetime.now()
# By design, these four functions don't perform any checks on their arguments.