Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Silverlight中管理客户端和服务器之间的时区差异?_Silverlight_Timezone_Wcf Ria Services_Silverlight 5.0_Entity Framework 5 - Fatal编程技术网

如何在Silverlight中管理客户端和服务器之间的时区差异?

如何在Silverlight中管理客户端和服务器之间的时区差异?,silverlight,timezone,wcf-ria-services,silverlight-5.0,entity-framework-5,Silverlight,Timezone,Wcf Ria Services,Silverlight 5.0,Entity Framework 5,我有一个SL5应用程序和一个表单,其中有一个日期字段。 我用如下代码设置此字段的默认日期: MyDate = System.DateTime.Today; 或 然后使用WCF Ria服务提交数据,将数据保存到数据库中 问题是:如果用户客户端计算机和Web服务器上的时区不同,则日期数据将以不同的值保存 例如,今天是2013年3月3日,当我从表单中保存数据时,在数据库中,数据保存为类似于2013年2月2日23:00:00.,而不是2013年3月3日00:00:00 如何解决此问题?您可以尝试使用

我有一个SL5应用程序和一个表单,其中有一个日期字段。 我用如下代码设置此字段的默认日期:

MyDate = System.DateTime.Today; 

然后使用WCF Ria服务提交数据,将数据保存到数据库中

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

例如,今天是2013年3月3日,当我从表单中保存数据时,在数据库中,数据保存为类似于2013年2月2日23:00:00.,而不是2013年3月3日00:00:00

如何解决此问题?

您可以尝试使用

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

您可以尝试使用

MyDate = DateTime.UtcNow

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

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

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


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

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

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

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