1

我有一个带有日期字段的表单的 SL 5 应用程序。我在代码中设置了该字段的默认日期,例如:

MyDate = System.DateTime.Today; 

或者

MyDate = System.DateTime.Now.Date; 

然后使用 WCF Ria Service 提交数据以将数据保存到数据库中。

问题是:如果用户客户端计算机和 Web 服务器上的时区不同,则日期数据将以不同的值保存。

例如,今天是 Jan-03-2013,当我从表单中保存数据时,在数据库中,数据保存为 Jan-02-2013 23:00:00.,而不是 Jan-03-2013 00: 00:00。

如何解决这个问题?

4

2 回答 2

1

你可以尝试使用

MyDate = DateTime.UtcNow

这会将 utc 时间返回到服务器,然后您可以将所有日期时间存储为 utc 或在保存到数据库之前对其进行操作(因此它将保存为服务器的本地时间)

于 2013-01-04T15:03:37.907 回答
0

除了时区差异外,客户端和服务器之间还可能存在实际日期值差异。

出于这个原因,我认为您应该每次都从服务器获取日期,或者您应该在应用程序启动时从客户端和服务器获取时间并找到差异间隔。然后,您应该通过将差值添加到本地日期值来计算服务器日期时间。

对于时区差异,您也应该始终以 UTC 格式工作,当然您应该以本地时区格式向用户显示该值。

于 2013-01-04T20:54:00.560 回答