summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/template/defaulttags.py4
-rw-r--r--tests/modeltests/timezones/tests.py7
2 files changed, 10 insertions, 1 deletions
diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py
index 9620d1cb81..a1a3f5f70c 100644
--- a/django/template/defaulttags.py
+++ b/django/template/defaulttags.py
@@ -15,6 +15,7 @@ from django.template.smartif import IfParser, Literal
from django.template.defaultfilters import date
from django.utils.encoding import smart_str, smart_unicode
from django.utils.safestring import mark_safe
+from django.utils import timezone
register = Library()
@@ -343,7 +344,8 @@ class NowNode(Node):
self.format_string = format_string
def render(self, context):
- return date(datetime.now(), self.format_string)
+ tzinfo = timezone.get_current_timezone() if settings.USE_TZ else None
+ return date(datetime.now(tz=tzinfo), self.format_string)
class SpacelessNode(Node):
def __init__(self, nodelist):
diff --git a/tests/modeltests/timezones/tests.py b/tests/modeltests/timezones/tests.py
index 5d86e9322e..774595be05 100644
--- a/tests/modeltests/timezones/tests.py
+++ b/tests/modeltests/timezones/tests.py
@@ -790,6 +790,13 @@ class TemplateTests(BaseDateTimeTests):
self.assertTrue(tpl.render(ctx).startswith("2011"))
timezone._localtime = None
+ def test_now_template_tag_uses_current_time_zone(self):
+ # Regression for #17343
+ tpl = Template("{% now \"O\" %}")
+ self.assertEqual(tpl.render(Context({})), "+0300")
+ with timezone.override(ICT):
+ self.assertEqual(tpl.render(Context({})), "+0700")
+
TemplateTests = override_settings(DATETIME_FORMAT='c', USE_L10N=False, USE_TZ=True)(TemplateTests)
#@override_settings(DATETIME_FORMAT='c', USE_L10N=False, USE_TZ=False)