1

我有一个用于 Web API 的 MVC 3 Web 应用程序,一个控制器发出 json。在 json 结果中,我看到日期正在自动序列化

作为

{
Flag: "U"
EventId: "168ef1d4-60ca-4fa1-b03b-8c3207650347"
EventTitle: "test event 11"
DateTimeStart: "/Date(1369217469310)/"
IsCustomEvent: true
Location: null
}

在 javascript 中,我需要将 DateTimeStart 转换为人类可读格式并使用此代码

var date = new Date(1369217469310); 警报(日期);

我将结果数据视为

2013 年 5 月 22 日星期三 12:11:09 GMT+0200 (CEST)

这是存储在应用程序中的日期前 1 小时,即 22/05/2013 11:11:09。

我想知道问题可能出在哪里以及如何解决:

  • .Net 是否默认使用 CEST 序列化日期,即 +1 UCT,在这种情况下如何将 UCT 设置为 0?
  • 使用 JavaScript 转换日期时会出现问题吗?

请让他们知道您将如何解决它,谢谢!

4

1 回答 1

1

我没有足够的信息来建议有关服务器端的信息。通常,服务器端问题的根源可能是您应用程序中设置的 CultureInfo。您可以考虑将所有日期时间转换为 UTC,然后再将其发送到浏览器。检查 DateTime.ToUniversalTime() 方法。

在客户端,您还可以修复区域时间和 UTC 之间的偏移量。没有内置函数可以执行此操作,但执行起来非常简单。检查下面的代码。

var date = new Date();
var dateWithOffset = date.getTime() + date.getTimezoneOffset() * 60000;
于 2013-05-22T10:38:27.810 回答