2011-03-11 158 views
2

人们如何处理Tornado中的时区,以便用户看到相对于其时区的时间格式?我知道有locale.format_date默认为GMT,但是如何根据用户设置正确的时区?在Tornado中设置时区

回答

1

您必须使用JavaScript

var userDate = new Date(); 
var tzOffset = userDate.getTimezoneOffset(); 
// Now set the cookie 
+1

它是如何通常在服务器端处理,我需要手动更新每个时间戳与tzoffset?龙卷风必须有比这更简单的东西。 – kefeizhou 2011-03-11 18:52:33

0

请原谅我的模糊不清,但为什么你的意思是基于用户在Tornado环境中格式化日期?龙卷风是一个服务器。用户是一个客户。

+0

例如,如果在EST用户创建晚上10点博客条目,创建时间戳应显示为晚上7点到用户PST。 – kefeizhou 2011-03-11 18:09:49

+1

不,您使用时区信息创建时间戳。这是一个普遍的时间。当您稍后将其显示给用户时,您需要知道用户时区偏移量以将其显示在他的“区域设置”中。在那里,Javascript将不得不帮助你。 – 2011-03-24 10:16:49

0

format_date接受gmt_offset设置时区由JavaScript偏移饼干。这比自己修改日期要稍微好一些,但对所有其他时区错综复杂并没有什么帮助。

如果您的日期总是过去,您可以采取的一种方法是对日期(例如10分钟前)使用相对格式,这是龙卷风的format_date的默认值。如果您需要防止日期过期,可以将它与一些JavaScript耦合。

http://www.tornadoweb.org/documentation/locale.html#tornado.locale.Locale.format_date