Python / Django templates timezone issue
Solution 1
Add the below snippet to the base.html
{% load tz %}
{% timezone "Asia/Kolkata" %}
<All content goes here>
{% endtimezone %}
Inherit this to all templates. Everything render in 'Asia/Kolkata' time zone
Solution 2
Django always stores data in UTC with timezone aware info. Your settings.py is for America/Chicago therefore template renders it accordingly.
You can use timezone filters in your template to always show local time {{ image.created_at | localtime }}
. At template start do {% load tz %}
timezone tag library.
I.e.
{% load tz %}
<!-- template -->
{{ image.created_at | localtime }}
<!-- more template -->
Solution 3
From the docs:
localtime
Forces conversion of a single value to the current time zone.
For example:
{% load tz %}
{{ value|localtime }}
Solution 4
The TIME_ZONE
setting is for the default (usually sever location timezone) to display time information related to the logged user you should read the documentation here
A.J.
Updated on June 13, 2022Comments
-
A.J. almost 2 years
I am having the following issue, and cant figure out what i am missing here.
I have enabled the Timezone in the settings.py
Settings.py
TIME_ZONE = 'America/Chicago'
USE_TZ = True
Use-case
Now, when I have created an object at 3.15pm (Local time), and i get the following date stored in my
created_at
field in database.created_at = models.DateTimeField(auto_now_add=True)
2014-12-12 11:03:48
When i render that date in my templates i get the following value.
{{ image.created_at }}
= >Dec. 12, 2014, 5:03 a.m.
TEST CASE
from datetime import datetime from dateutil.tz import tzutc, tzlocal utc = datetime.now(tzutc()) print('UTC: ' + str(utc)) local = utc.astimezone(tzlocal()) print('Local: ' + str(local))
I am getting correct datetime here. And when i use
myobject.created_at.astimezone(tzlocal())
it also returns correct. but its when in Templates i get 1 hour ahead time. WHY? i tried both|local
filter also but no useWhat am I missing?
-
s007 over 9 yearsAs per testcase code I get expected timezone in template, no variation of 1 hr. Please share exact template code.