在具有多個時區的用戶的grails應用程序中處理時區的正確方法是什麼?有沒有一種標準的方法來實現時區Grails應用程序?也許Rails處理多時區支持的方式有些相似之處? http://mad.ly/2008/04/09/rails-21-time-zone-support-an-overview/服務於多個時區的Grails應用程序
有沒有辦法設置每個用戶會話的當前時區?這意味着你可以有多個活動的用戶會話,其中不同的時區用於處理「日期」。
我試圖避免不得不手動處理時區轉換。
感謝
在具有多個時區的用戶的grails應用程序中處理時區的正確方法是什麼?有沒有一種標準的方法來實現時區Grails應用程序?也許Rails處理多時區支持的方式有些相似之處? http://mad.ly/2008/04/09/rails-21-time-zone-support-an-overview/服務於多個時區的Grails應用程序
有沒有辦法設置每個用戶會話的當前時區?這意味着你可以有多個活動的用戶會話,其中不同的時區用於處理「日期」。
我試圖避免不得不手動處理時區轉換。
感謝
首先,它往往是提出一個選擇的用戶是一個好主意 - 他是在時區你可以試着從他的推斷設置它,但這是不可靠的。 Grails中可以讓用戶通過選擇自己的時區:
<g:timeZoneSelect name="myTimeZone" />
注意,value
屬性默認爲當前Locale
。所以我猜測grails的默認localeresolver會做一個很好的工作來猜測用戶的語言環境。
對於工作,你需要存儲在數據庫中的所有時間在UTC(或固定爲整個應用程序的另一個時區)
<g:formatDate>
索賠它只有3個屬性,但因爲它似乎的文檔至少version 1.2它支持timeZone
屬性。所以你必須把timeZone="${currentUser.timeZone}"
你可以嘗試使用JodaTime和DateTime類,它裏面有時區。不過,我相信你需要在UTICS中存儲時間。爲此,您必須提供自己的映射到適用於UTC的GORM,自己的日期格式taglib,考慮用戶時區等等。
OTOH,如果你有一些共同的功能,如後臺作業(我相信你會),它將使用什麼時區?
我的經驗(使用java的默認日期和時間)是您可以使用任何時區作爲「基本」/服務器日期和時間。它必須是一致的,並且grails運行的機器應該使用這個時區作爲其系統時間,否則會出現不必要的「時間轉換」。但我也推薦在java日期和時間出現問題後使用JodaTime。 – 2010-11-26 10:07:07