我已经确认dateutils.tz.tzlocal()在Heroku上无法使用,即使它可以使用,它也只会从所在计算机的操作系统中获取时区,不一定是用户的时区。
除了存储用户的时区之外,还有没有其他方法确定请求来自哪里?(我正在使用Flask)
Twitter确实有一个设置来调整您的时区,但我想知道他们如何确定默认时区,并且在用户未登录时该设置如何工作。
您可以使用JavaScript并将客户端的时区设置在cookie中。您甚至可以使用AJAX请求,然后将偏移量发送到服务器并保存在客户端会话中。
var offset = new Date().getTimezoneOffset();
描述
时区偏移是UTC和本地时间之间的差异,以分钟为单位。请注意,如果本地时区落后于UTC,则偏移量为正,如果本地时区领先于UTC,则偏移量为负。例如,如果您的时区是UTC+10(澳大利亚东部标准时间),将返回-600。夏令时使得即使对于给定的语言环境,该值也不是一个常数。
request
对象中获取),那么您可以使用地理定位。例如,通过 http://www.hostip.info/。
tzlocal.get_localzone()
。 - jfs