1

我有SL 5應用程序,其中有一個字段爲Date。 我設置此字段的默認日期如下代碼:如何管理Silverlight中客戶端和服務器之間的時區差異?

MyDate = System.DateTime.Today; 

或者

MyDate = System.DateTime.Now.Date; 

然後提交與WCF RIA服務的數據將數據保存到數據庫中。

問題是:如果用戶客戶端計算機和Web服務器上的時區不同,則日期的數據將以不同的值保存。

例如,今天是2013年1月3日,當我將表格中的數據保存到數據庫中時,數據將保存爲類似Jan-02-2013 23:00:00的數據,而不是Jan-03 -2013 00:00:00。

如何解決這個問題?

回答

1

你可以嘗試使用

MyDate = DateTime.UtcNow 

這將返回UTC時間服務器,那麼你可以存儲所有日期時間爲UTC或保存到數據庫之前操縱它(所以它會被保存爲服務器的本地時間)

+0

謝謝。它工作正常。新年快樂! – KentZhou

0

除了時區差異之外,客戶端和服務器之間還可能存在實際的日期值差異。

因此,我認爲您應該每次都從服務器獲取日期,或者您應該從客戶端和服務器開始啓動應用程序的時間,並找到差異間隔。然後,您應該通過將差異添加到本地日期值來計算服務器日期時間。

對於時區差異,你也應該一直以UTC格式工作,你應該以當地時區格式向用戶顯示值。

相關問題