How do templates automatically convert dates to local timezone?

244 views
Skip to first unread message

Robert Rollins

unread,
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

unread,
Aug 3, 2016, 4:49:45 PM8/3/16
to django...@googlegroups.com
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.

Regards,
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 django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/b4f5a0d6-8aea-47a9-969e-45c7a407a104%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Robert Rollins

unread,
Aug 3, 2016, 5:06:45 PM8/3/16
to Django users, constantine...@gmail.com
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

unread,
Aug 4, 2016, 7:53:00 AM8/4/16
to django...@googlegroups.com, constantine...@gmail.com
You should probably look in the code of models.DateTimeField, models.DateField and models.TimeField.

Reply all
Reply to author
Forward
0 new messages