Django with system timezone setting vs user's individual timezones

前端 未结 6 590
無奈伤痛
無奈伤痛 2021-02-02 15:01

How well does Django handle the case of different timezones for each user? Ideally I would like to run the server in the UTC timezone (eg, in settings.py set TIME_ZONE=\"UTC\")

6条回答
  •  無奈伤痛
    2021-02-02 15:48

    Not a Django expert here, but afaik Django has no magic, and I can't even imagine any such magic that would work.

    For example: you don't always want to save times in UTC. In a calendar application, for example, you want to save the datetime in the local time that the calendar event happens. Which can be different both from the servers and the users time zone. So having code that automatically converts every selected datetime to the servers time zone would be a Very Bad Thing.

    So yes, you will have to handle this yourself. I'd recommend to store the time zone for everything, and of course run the server in UTC, and let all the datetimes generated by the application use UTC, and then convert them to the users time zone when displaying. It's not difficult, just annoying to remember. when it comes to datetimes that are inputted by the user, it's dependant on the application if you should convert to UTC or not. I would as a general recommendation not convert to UTC but save in the users time zone, with the information of which time zone that is.

    Yes, time zones is a big problem. I've written a couple of blog posts on the annoying issue, like here: http://regebro.wordpress.com/2007/12/18/python-and-time-zones-fighting-the-beast/

    In the end you will have to take care of time zone issues yourself, because there is no real correct answer to most of the issues.

提交回复
热议问题