Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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
C# 提交后服务器客户端上的时间差_C#_Silverlight_Datetime - Fatal编程技术网

C# 提交后服务器客户端上的时间差

C# 提交后服务器客户端上的时间差,c#,silverlight,datetime,C#,Silverlight,Datetime,我有一个Silverlight应用程序用于代理评估。在进行评估时,日期时间显示正确,但在我提交了一个评估后,我想在以后编辑它,我看到有一个-5小时的差异。客户端来自加拿大,但服务器似乎在其他地方。我已经读了一些关于它的文章(必须使用UTCDateTime),但是它有点难测试,因为应用程序必须部署才能测试,所以我不想在黑暗中拍摄 有什么帮助吗 编辑:这是我创建评估的方式 CurrentEvaluation = new Evaluation(); CurrentEvaluation.CreatedB

我有一个Silverlight应用程序用于代理评估。在进行评估时,日期时间显示正确,但在我提交了一个评估后,我想在以后编辑它,我看到有一个-5小时的差异。客户端来自加拿大,但服务器似乎在其他地方。我已经读了一些关于它的文章(必须使用UTCDateTime),但是它有点难测试,因为应用程序必须部署才能测试,所以我不想在黑暗中拍摄

有什么帮助吗

编辑:这是我创建评估的方式

CurrentEvaluation = new Evaluation();
CurrentEvaluation.CreatedBy = UserID;
CurrentEvaluation.CreatedDate = DateTime.Now;
CurrentEvaluation.EvaluatorID = UserID;
CurrentEvaluation.EvaluationDate = DateTime.Now;
CurrentEvaluation.UserID = CurrentUser.UserID;
CurrentEvaluation.TenantID = CurrentTenant.TenantID;

只说
CurrentEvaluation.EvaluationDate=DateTime.Now.ToUniversalTime()就够了吗然后将其转换回本地时间?

对于您的特定示例来说,这可能有些过分,但在处理源自不同时区(不同于服务器或客户端之间)的日期/时间时,最好使用Silverlight 3中引入的新结构以及SQL Server 2008 R2字段类型来存储它们

这使您不仅可以确定“世界时间”,还可以了解相对于任何给定客户机的时间


当RIA服务首次推出时,它不支持DateTimeOffset类型(因此我们不得不考虑一个涉及DateTime和int偏移量的修复),但这在后来的RIA service pack中得到了更正,因此您可以按预期使用DateTimeOffset。

请编写代码,了解如何插入和使用检索到的数据为什么不使用UTCDateTime和.ToLocalTime()来显示正确的日期?DateTime。现在将是服务器上的本地时间,您应该知道客户机的UTC偏移量,并将日期存储在UTC中,然后使用偏移量返回,该偏移量将在客户机的本地时间显示。为什么不在虚拟机上加载服务器代码并在那里更改时区。。。这很容易,你将能够检查更多的问题。您可以将VM事件切换到测试伪语言环境,以检查日期->字符串转换等。