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