我正在开发的应用程序的目标用户是美国。而且(如您所知)在美国有不止一个时区。所以我有一些疑问:
- 那么我怎样才能根据 当前用户?
- 以及如何存储
DateTime
数据以显示正确的时间 每个用户? - 如何比较时间(例如:
user.event.created > datetime.now()
)?.now()
使用什么时区? - 我应该在
settings.py
文件中设置什么 TIME_ZONE。
这是一个 API,不能通过 JS 获取用户的时区。我通过 TokenAuthentication 获取当前用户。
最佳答案
为 settings.py
使用 UTC
并从 Javascript 获取他们的时区偏移量:
var utcOffset = -((new Date()).getTimezoneOffset()) / 60;
例如现在洛杉矶 utcOffset == -7
不幸的是,这没有考虑夏令时之后的变化(偏移量变化为 -8
),因此您可能必须在检索时弄清楚这一点才能获得 太平洋/洛杉矶
。否则,您总是可以在注册表单中询问用户这对您的业务是否重要。
编辑:由于您使用的是 API,您也可以尝试使用 IPInfoDB API基于客户端 IP 地址进行地理定位。它并不总是完全准确,但几乎总是足以获得正确的时区。
关于python - 在 Django 中使用多个时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32381976/