1

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

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

例如,

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

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

4

3 回答 3

3

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

于 2011-03-23T22:00:39.127 回答
2

序列化 DateTime 和 WCF 存在问题。

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

于 2011-03-23T22:02:33.830 回答
1

使用世界时或格林威治标准时间应该可以解决这个问题。

于 2011-03-23T21:58:12.720 回答