2014-02-05 36 views
4

我知道我必须设置TimeZone某处,但我不知道如何从用户那里“获取”当前时区并显示(动态?)日期正确的偏移量。Grails - 考虑到时区用户的显示日期

这是我的代码:

域:

class MyClass { 

    Date myDate 

} 

控制器:

def unixSeconds = 1386760029 
Date date = new Date(unixSeconds*1000L) 

GSP:

<g:formatDate format="yyyy-MM-dd HH:mm" date="${MyClassInstance.myDate}" timeZone="${TimeZone.getTimeZone("GMT")}"/> 

回答

2

你不能让用户时区,因为这信息不是在请求中发送。

您可以尝试使用GeolocationGeoIP来获取用户位置以检索用户国家,然后设置相应的时区。

另一种方式是让使用JavaScript getTimezoneOffset() Method UTC与本地时间之间的时区差异:

var d = new Date() 
var n = d.getTimezoneOffset(); 

但它更容易手动让用户设置的时区。

+0

我为用户''添加了这个,但是当试图将该值设置为例如“Canada/Central”时,默认选择不会改变。 – Jils

+0

该标签仅创建一个包含所有时区的下拉列表,但您必须将该值存储在某处以便稍后重用(在会话中或数据库中,如果您有用户帐户)。 –

相关问题