DataTable中的TimeZone错误

时间:2011-03-23 21:53:54

标签: c# datetime timezone database-table

我有一个网站,位于server1上。它使用web服务,它位于server2上。 Web服务使用server3上的数据库。

Server1 server2和server3具有不同的时区,因此当我通过Web服务获取数据表时,Datetime类型列具有不同的时间值。

例如,

如果在数据库中我有一个记录(日期类型)'2010-03-24-12:00:00',在网站上我得到'2010-03-24-13:00:00'

我尝试更改列的“DateTimeMode”,但问题没有解决。

3 个答案:

答案 0 :(得分:3)

根据经验,我总是将数据库中的日期时间值存储为UTC,并将其留给客户端,以根据其关联的时区进行调整。 .NET 3.5使这个时区调整变得非常容易。

答案 1 :(得分:2)

序列化DateTime和WCF时出现问题。

最佳解决方案是始终将DateTime作为UTC存储在数据库中。然后,当从SQL读取DateTime时,总是使用DateTime.Specify来指定DateTimeKind.Utc。

答案 2 :(得分:1)

使用世界时或GMT可以解决这个问题。