2011-03-23 32 views
0

我有一個網站,它位於server1上。它使用服務器2上的Web服務。 Web服務使用server3上的數據庫。DataTable中的錯誤時區

Server1 server2和server3有不同的時區,所以當我通過web服務獲取數據時,日期時間類型列有不同的時間值。

例如,

,如果在數據庫中我有一個記錄(日期型) '2010-03-24-12:00:00',在網站上,我得到「2010-03-24-13: 00:00'

我試圖改變列的「DateTimeMode」,但問題沒有解決。

+1

您確定這些值現在不存儲錯誤嗎?因爲DateTimeMode爲我們做了 – flq 2011-03-23 21:55:59

回答

3

作爲一個經驗法則,我總是將日期時間值存儲在我的數據庫中作爲UTC,並留給客戶端根據其相關時區進行調整。 .NET 3.5使這個時區調整非常簡單。

1

使用通用時間或GMT應該可以解決這個問題。

2

序列化DateTime和WCF時出現問題。

最好的解決方案是始終將DateTime作爲UTC存儲在數據庫中。然後,當從SQL中讀取DateTime時,總是使用DateTime.Specify指定DateTimeKind.Utc。