我正在使用SQL Azure Silverlight應用程序。據我所知,如果DateTime
種類未指定,Silverlight會將其更改爲Local
,並且它會以UTC時間保存到Azure。如何處理Silverlight中的DateTime和TimeZone?
一切按預期工作,但是當我從SQL Azure獲得DateTime
數據時,其種類爲Unspecified
,並且Silverlight在UI上顯示時不會轉換回Local
時間。
例如:我在羅馬(UTC +1)使用我的應用程序,我將日期設置爲15:00,然後保存到數據庫。在數據庫中它將保存爲14:00(UTC)。
現在我打開頁面編輯該數據,它從數據庫中查詢爲14:00,使用Unspecified
類型,它也在頁面中顯示14:00,這顯然不正確。
我試着在DomainService(在將這些數據返回給客戶端之前)設置DateTime
種類,方法是檢查它的類型是否未指定,將其設置爲UTC。這次,當我在頁面上更改DateTime時,它的類型始終是UTC。
好像Silverlight將轉換日期只有當它的種類爲Unspecified
,否則什麼都不做,也不能轉換DateTime
從數據庫中正確顯示即使是那些DateTime
有種。
我想知道,有沒有解決方法或解決此問題?
我試圖做到這一點,它會正確地顯示在用戶界面,但是當我在UI更改日期時間,並保存到數據庫中,也不會從本地轉換爲UTC。例如,如果我在羅馬(UTC +1)將日期時間設置爲15:00:00,那麼它會將數據保存到15:00:00而不是14:00:00 – Anonymous 2011-02-04 02:35:02