javascript - 传递给 Javascript 时的 ASP.NET DateTime 对象 "changes"

标签 javascript asp.net web-services utc

我的 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 点时间:“2013 年 3 月 15 日星期五 10:00:00 GMT+0100(浪漫标准时间)” 在此警报之后,我立即将 DateTime 对象传递回网络服务器。但是当我调试这个对象时,日期时间现在是上午 9 点。 怎么会?客户端和服务器运行在同一台机器上。 我试过 DateTime.SpecifyKind,但总的来说结果是一样的;当时间被发送回服务器时,客户端减去一个小时。

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

提前谢谢你。

最佳答案

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

在我将日期时间从服务器发送到客户端之前,我没有对日期时间做任何事情(例如设置 UTC)。然后 javascript 客户端显示正确的时间。 当 javascript 将时间发送回服务器时,将添加一个小时。然后我调用 .ToLocalTime();在 DateTime 对象上,现在时间是正确的。

关于javascript - 传递给 Javascript 时的 ASP.NET DateTime 对象 "changes",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15201966/

相关文章:

javascript - 如何使用 sveltekit 提供纯 json 文件?

javascript - 当页面添加1,滚动到底部

asp.net - 在 Entity Framework 5 中重命名导航属性不会更新代码

javascript - 在 asp.net 用户控件中找不到隐藏字段

web-services - 具有不同方法或不同 URI 路径的 REST 的相同 URI 路径?

javascript - 如何检测用户何时看完您网页上嵌入的 YouTube 视频?

javascript - 如何使用dropzone上传base64图片资源?

ASP.NET 母版页 : how to insert markup in the head section inside the aspx?

c# - 验证后读取 WCF 服务中的用户名

python - 将服务器目录树内的 html 文件加载到 iframe 失败