Microsoft AJAX序列化日期与时间迅速

时间:2013-05-22 09:16:39

标签: javascript asp.net json asp.net-mvc-3

我有一个用于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。

我想知道问题的位置以及解决方法:

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

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

1 个答案:

答案 0 :(得分:1)

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

在客户端,您还可以修复区域时间和UTC之间的偏移。这样做没有内置功能,但执行起来非常简单。请检查以下代码。

var date = new Date();
var dateWithOffset = date.getTime() + date.getTimezoneOffset() * 60000;