python - 具有系统时区设置的 Django 与用户的个人时区

标签 python django timezone

Django 如何处理每个用户不同时区的情况?理想情况下,我想在 UTC 时区中运行服务器(例如,在 settings.py 中设置 TIME_ZONE="UTC"),因此所有日期时间都作为 UTC 存储在数据库中。像 this 这样的东西这让我很害怕,这就是为什么我在任何地方都喜欢使用 UTC。

但是,为每个用户存储一个时区并仍然使用标准的 django 日期时间格式和 modelform 包装器会有多难。我是否预计必须在各处编写日期处理代码以将日期转换为用户的时区并再次转换回 UTC?

我仍在阅读 Django 教程,但我知道在其他一些假定系统时区无处不在的框架中处理用户时区会非常痛苦,所以我想我现在就问。

我目前的研究包括搜索 django 文档并只找到 one reference到时区。


附加:

最佳答案

更新,2013 年 1 月:Django 1.4 现在有 time zone支持!!


由于历史原因的旧答案:

我将亲自为我的应用程序解决这个问题。我解决这个问题的第一个方法是采用 django 核心开发人员 Malcom Tredinnick 在 this django-user's post 中的建议。 .您可能希望将用户的时区设置存储在他们的用户配置文件中。

我也强烈建议您查看 pytz module ,这使得时区工作不那么痛苦。对于前端,我创建了一个基于 pytz 中常见时区的“时区选择器”。我有一个区域选择框,另一个位置选择框(例如,US/Central 使用两个选择框呈现)。它使选择时区比在 400 多个选择的列表中费力更方便。

关于python - 具有系统时区设置的 Django 与用户的个人时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1061911/

相关文章:

python - 在 __init__.py 和 'import as' 语句中导入

Django Microsoft 身份验证后端在新部署中未成功

python - 自定义 django render_comment_form 字段

python - 用户注册到 'https://api.parse.com/1/users' 给出错误的请求错误

java - 将 UTC 转换为东部盛行时间(EDT 或 EST)

javascript - 如何在 JavaScript 中使用 ISO 8601 格式化带有时区偏移的日期?

python - 什么时候使用替代的 Python 发行版?

python - Azure 函数和 Azure Blob 存储

php - 清除启动浏览器缓存

c# - 如何在 Windows 时区和 IANA 时区之间进行转换?