Grails应用程序服务多个时区

Grails application serving multiple timezones

在拥有多个时区用户的Grails应用程序中,处理时区的正确方法是什么?是否有一个关于Muilt时区Grails应用的标准?也许Rails处理多时区支持的方式是类似的?http://mad.ly/2008/04/09/rails-21-time-zone-support-an-概述/

是否有方法设置每个用户会话的当前时区?这意味着您可以有多个活跃的用户会话,使用不同的时区来处理"日期"。

我尽量避免手动处理时区转换。

谢谢


首先,给用户一个选择通常是个好主意——他在哪个时区。你可以试着从他的设定中推断出来,但这不可靠。在Grails中,用户可以通过以下方式选择时区:

1
<g:timeZoneSelect name="myTimeZone" />

注意,value属性默认为当前的Locale。所以我猜Grails的默认localeresolver可以很好地猜测用户的区域设置。

要使其正常工作,您需要将所有时间存储在数据库中(以UTC为单位)或另一个为整个应用程序固定的时区。

的文档声称它只有3个属性,但似乎至少从1.2版开始,它支持timeZone属性。所以你得把timeZone="${currentUser.timeZone}"放在


您可以尝试使用jodatime和datetime类,它内部有时区。不过,我相信你还是需要把时间储存在超声波探伤仪里。为此,您必须提供自己的映射到应用UTC的GORM、考虑到用户时区的自己的日期格式标记库,以及其他一些东西。

哦,如果你有一些共同的功能,比如后台工作(我相信你会),它将使用什么时区?