Silverlight DateTime.Today值在发送到服务器时已更改

Silverlight DateTime.Today值在发送到服务器时已更改,silverlight,datetime,timezone,Silverlight,Datetime,Timezone,我和Silverlight一起工作,我遇到了一个问题。在我的数据库中,我存储了一些日期,格式如下yyyy/mm/dd 00:00:00,这意味着我只存储年、月和日,将时间设置为00:00:00 当客户端执行一个操作并发送到服务器时,我得到DateTime.Today,它将保留数据库日期的格式,但当它被发送时,我得到yyyy/mm/dd 22:00:00,因此当我的服务器端函数得到日期时,它不会从数据库返回任何值 如何修复此问题以获得正确的日期时间 谢谢日期时间结构在序列化时很容易受到DST、时区

我和Silverlight一起工作,我遇到了一个问题。在我的数据库中,我存储了一些日期,格式如下yyyy/mm/dd 00:00:00,这意味着我只存储年、月和日,将时间设置为00:00:00

当客户端执行一个操作并发送到服务器时,我得到DateTime.Today,它将保留数据库日期的格式,但当它被发送时,我得到yyyy/mm/dd 22:00:00,因此当我的服务器端函数得到日期时,它不会从数据库返回任何值

如何修复此问题以获得正确的日期时间


谢谢

日期时间结构在序列化时很容易受到DST、时区和区域性的影响

在推送之前,您是否在客户端序列化它?客户端和服务器时区之间有什么区别

我建议您尝试使用DateTime.UtcNow,然后序列化数据。我更喜欢使用不变区域性序列化


HTH

日期时间结构在序列化时很容易受到DST、时区和区域性的影响

在推送之前,您是否在客户端序列化它?客户端和服务器时区之间有什么区别

我建议您尝试使用DateTime.UtcNow,然后序列化数据。我更喜欢使用不变区域性序列化


HTH

使用UTC时间来确保您不会遇到时区问题


通过检查Kind属性,您可以查看DateTime是UTC还是基于本地的,并且可以通过DateTime.UtcNow获取当前UTC时间。

使用UTC时间以确保不会遇到时区问题


通过检查Kind属性,可以查看DateTime是基于UTC还是基于本地的,并且可以通过DateTime.UtcNow获取当前UTC时间。

除了在数据库中存储UTC时间外,还可以使用DateTime类的date属性将所有日期值的时间硬设为12:00:00

DateTime.UtcNow.Date
您可以使用ToLocalTime方法在用户的本地时区向用户显示日期:

DateTime.ToLocalTime().Date
我相信每个数据库引擎都有类似的功能,但是获取UTC日期的SQL Server功能(令人惊讶的是)是:


我希望这会有所帮助。

除了在数据库中存储UTC时间外,还可以使用DateTime类的date属性将所有日期值的时间硬设置为12:00:00

DateTime.UtcNow.Date
您可以使用ToLocalTime方法在用户的本地时区向用户显示日期:

DateTime.ToLocalTime().Date
我相信每个数据库引擎都有类似的功能,但是获取UTC日期的SQL Server功能(令人惊讶的是)是:


我希望这能有所帮助。

谢谢大家。准确的我已经使用UTC将日期发送到我的服务器,然后我从该日期开始计算日期时间,一切都解决了!!谢谢大家。准确的我已经使用UTC将日期发送到我的服务器,然后我从该日期开始计算日期时间,一切都解决了!!