使用python,自动确定用户当前时区的最准确方法是什么

chr*_*kso 6 python timezone datetime flask

我已经验证了dateutils.tz.tzlocal()在heroku上不起作用,即使它确实如此,它不会只是从计算机的操作系统中获取tz,而不是用户吗?

如果没有存储用户时区,有没有办法确定请求的来源?(我正在使用烧瓶)

Twitter确实有一个设置来调整你的时区,但我想知道他们如何确定默认值应该是什么以及当用户没有登录时它将如何工作.

bri*_*uck 9

您可以使用Javascript并在cookie中设置客户端的时区.您甚至可以使用AJAX请求,然后将偏移量发送到服务器并保存在客户端的会话中.

var offset = new Date().getTimezoneOffset();
Run Code Online (Sandbox Code Playgroud)

描述

时区偏移是UTC与本地时间之间的差异(以分钟为单位).注意>这意味着如果本地时区落后于UTC,则偏移量为正,如果前置,则偏移量为负.例如,如果您的时区是UTC + 10(澳大利亚东部标准时间),则将返回-600.夏令时可以防止该值即使对于给定的区域设置也是常量

Mozilla Javascript参考:getTimezoneOffset


Rol*_*ith 1

如果您可以轻松地从 Flask 中获取用户的 IP 地址(也许从request对象中?),您可以使用地理定位。例如通过http://www.hostip.info/

但它可能不是 100% 万无一失。例如,如果某人使用 VPN 或其他类型的代理,您将看不到他的“真实”IP 地址。