提交后服务器-客户端的时间差

本文关键字:时间差 客户端 服务器 提交 | 更新日期: 2023-09-27 18:16:36

我有一个Silverlight代理评估应用程序。在进行评估时,DateTime正确显示,但在我提交评估后,我想稍后编辑它,我看到有-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中引入的新的DateTimeOffset结构以及SQL server 2008 R2的DateTimeOffset字段类型来存储它们。

这使您不仅可以确定"通用时间",还可以知道时间相对于任何给定的客户端

当RIA服务第一次出现时,它不支持DateTimeOffset类型(所以我们不得不进行一个涉及DateTime和int offset的修复),但是在后来的RIA服务包中得到了纠正,所以你可以使用DateTimeOffset作为它们的目的。