2

我的 ASP.NET 网络服务在我的测试环境中的本地计算机上运行。我的本地计算机 UTC 时间是 +1(丹麦)。现在我的 javascript 客户端可以使用这些方法:

[WebMethod(EnableSession=true)]
public DateTime GetDateTime() {
  return new DateTime(2013,3,15,10,0,0);
}

[WebMethod(EnableSession=true)]
public void SetDateTime(DateTime DT) {

}

当我从 javascript 调用第一个方法并提醒传递的 DateTime 时,它​​正确显示了上午 10 点的时间:'Fri Mar 15 2013 10:00:00 GMT+0100 (Romance Standard Time)' 在此警报之后,我立即通过了 DateTime对象返回到网络服务器。但是当我调试这个对象时,DateTime 现在是上午 9 点。怎么会?客户端和服务器在同一台机器上运行。我玩过 DateTime.SpecifyKind,但总的来说结果是一样的;当时间被发送回服务器时,客户端减去一个小时。

希望你能帮助我更好地理解这个主题。

先感谢您。

4

1 回答 1

0

@millimoose 我已经尝试过 DateTimeOffset 解决方案,但它并没有真正帮助。我不确定我是否 100% 正确使用它。现在对我有用的是:

在我将 DateTime(s) 从服务器发送到客户端之前,我不对 DateTime 做任何事情(例如设置 UTC)。然后,javascript 客户端会显示正确的时间。当 javascript 将时间发送回服务器时,会增加一个小时。然后我打电话给 .ToLocalTime(); 在 DateTime 对象上,时间现在是正确的。

于 2013-03-04T16:16:32.350 回答