2010-04-27 52 views
1

我正在開發一個java客戶端 - 服務器應用程序。服務器通過Web服務提供一些操作。應用程序必須根據用戶的自定義日期和時間顯示一些內容;從Web服務中檢索的信息。不同的用戶可能處於不同的時區。開發瞭解用戶所在時區的網絡服務

我一直在想如何在服務器上存儲用戶的自定義時區,併爲用戶提供正確的內容,例如,當操作getTodayEvents被調用時。

有什麼最佳實踐來在java中實現這一點?

回答

2

是,您可以將時區信息存儲到用戶的詳細信息表中。根據這一點,你可以從你的網絡服務提供服務。我認爲這是做到這一點的最佳方式。

0

有兩種方法可以做到這一點:

1)獲取用戶選擇在他們的帳戶設置一個時區,並存儲與用戶的詳細信息。

這種方法的問題是,用戶從不同的時區登錄,處理夏令時可能很複雜,而且您必須實現用戶友好的選擇時區的機制。

2)將以下內容或類似內容放入登錄頁面,並使提交操作將tzo的值作爲(隱藏)表單參數發送到服務器。

<script type="text/javascript" language="javascript"> 
<!-- 
    var tzo=(new Date().gettimezoneOffset()/60)*(-1); 
    // --> 
</script> 

這樣整齊地避免了第一種方法的問題。唯一的問題是,如果用戶禁用Javascript,它將無法正常工作。

0

一個建議:當你的代碼有重要的日期相關的邏輯(如果它佔時區,它有),讓你自己的世界痛苦和使用Joda time。與Java日期和日曆的邪惡聯盟不同,Joda Time的API通常會促使您以正確的方式做事。