Opened 8 years ago

Last modified 8 years ago

#26711 closed Bug

Aware datetimes rendered through templates are changed to TIME_ZONE — at Initial Version

Reported by: Antonis Christofides Owned by: nobody
Component: Template system Version: 1.9
Severity: Normal Keywords: timezone
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Start a new project with django-admin startproject, then start a shell with ./manage.py shell and execute these commands:

from datetime import datetime
import sys

from django.template import Context, Template

import pytz

# Set adatetime to 2015-10-03 02:00 EEST (+0300)
athens = pytz.timezone('Europe/Athens')
adatetime = athens.localize(datetime(2015, 10, 3, 2, 0))

# Render that date in a template
template = Template(
    'Take note of this date: {{ adatetime|date:"Y-m-d H:i e (O)" }}')
result = template.render(Context({'adatetime': adatetime}))
sys.stdout.write(result)

Result: 2015-10-02 23:00 UTC (+0000)

Expected: 2015-10-03 02:00 EEST (+0300)

These are actually the same time displayed in different time zones. Django chooses to display the time in the TIME_ZONE setting. I thought it would be more logical to leave an aware datetime untouched.

If this behavior is correct: How am I going to do what I want, which is to render the aware datetime in its own time zone?

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top