How do templates automatically convert dates to local timezone?

Skip to first unread message

Robert Rollins

Aug 3, 2016, 4:36:29 PM8/3/16
to Django users
I'm writing tests that assert dates are being properly rendered on a certain page, but the tests are failing because the date value on the model object is in UTC, and the date is rendered in local time on the template. I'd like to run that date value through the same mechanism by which the template converts it to local time, so that my test does the same thing as the template.

I've looked around, and unfortunately been unable to find the code that does the automatic conversion. The "date" template filter doesn't do it, and I'm too ignorant of the nitty gritty details of django template system to know what else I should be looking for. 

Any help would be appreciated.

Constantine Covtushenko

Aug 3, 2016, 4:49:45 PM8/3/16
Hi Robert,

You have touched a very simple but always confusing questions - storing dates and showing them to users in different places.

As I know Django uses that in very straightforward way.
It always converts dates to UTC.
Flow that converts them back to different users in different time-zones is adjusted through settings.

Please check settings for your testing environment.
More information you can find on that `i18` documentation page.

I hope that helps.

You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
Visit this group at
To view this discussion on the web visit
For more options, visit

Robert Rollins

Aug 3, 2016, 5:06:45 PM8/3/16
to Django users,
Perhaps I wasn't clear. I know *what* Django does with timezone-aware dates. I just want to know *how* it does the conversion from the UTC-stored datetime in the DB to the localtime-displayed datetime in the templates. Which function(s) does the template system call to do the conversion?

João Sampaio

Aug 4, 2016, 7:53:00 AM8/4/16
You should probably look in the code of models.DateTimeField, models.DateField and models.TimeField.

Reply all
Reply to author
0 new messages