数据表中的时区错误
我有一个网站,位于 server1 上。它使用位于 server2 上的 Web 服务。 Web 服务使用位于 server3 上的数据库。
Server1 server2和server3具有不同的时区,因此当我通过Web服务获取数据表时,Datetime类型列具有不同的时间值。
例如,
如果在数据库中我有一条记录(日期类型)“2010-03-24-12:00:00”,在网站上我得到“2010-03-24-13:00:00”
我尝试更改列的“DateTimeMode”但问题没有解决。
I Have a web site, which is on server1. It uses web service, which is on server2. Web service uses database, which is on server3.
Server1 server2 and server3 has different timezone, so when I get datatable via web service, Datetime type column has different time value.
For example,
if in database I have a record (date type) '2010-03-24-12:00:00', on web site I get '2010-03-24-13:00:00'
I tried to change column's "DateTimeMode" but problem was not solved.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据经验,我始终将日期时间值以 UTC 形式存储在数据库中,并让客户端根据其关联的时区进行相应调整。 .NET 3.5 使时区调整变得非常容易。
As a rule of thumb, I have always stored datetime values in my databases as UTC and left it up to the client to adjust accordingly to its associated timezone. .NET 3.5 makes this timezone adjustment very easy.
序列化 DateTime 和 WCF 时出现问题。
最好的解决方案是始终将 DateTime 作为 UTC 存储在数据库中。然后,当从 SQL 读取 DateTime 时,始终使用 DateTime.Specify 指定 DateTimeKind.Utc。
There is a problem with serialising a DateTime and WCF.
The best solution is to always store the DateTime as UTC in the database. Then when reading the DateTime from SQL always use DateTime.Specify to specify a DateTimeKind.Utc.
使用通用时间或 GMT 应该可以解决这个问题。
Using Universal time or GMT should cure that problem.