2011-03-11 60 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