MVC,JsonResult,DateTime和Timezone

时间:2014-09-18 18:17:29

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

美好的一天,我的同事们,

我现在花了2天时间寻找解决方案,并且即将疯狂......

问题在于:

  • 在WebPage上,用户修改了一个对象,我需要存储时间而不用时区信息。 [我只关心时间和分钟]

  • 该对象通过ajax作为JsonResult发送到服务器[asp.net mvc 5]。

  • 让我们说服务器有时区UTC + 1,用户在网页上选择09:00,json是ajax到我的控制器,并且繁荣 - 我的mvc控制器中产生的对象有一个DateTime对象,时间为10:00;

我做了什么:客户端:以UTC格式存储时间信息[所以dateobjet.toUTCString()给了我想要的正确日期,就在postig到控制器之前]

那么有没有办法告诉JsonResult-Converter忽略Timezone-Info并使用UTC-Time?

谢谢,

Mr.Muh

好的,我希望用更好(更短)的方式来描述它:

  • ClientSite:我在UTC中需要的时间的JavaScript日期(但仍然包含一些我不需要的时区信息),让我们说,例如'星期五,01年2月1日09:00:00 GMT'来自.toUTCString()

  • 的结果
  • 将Json&和其他变量一起包裹起来。通过ajax发布到我的asp.net mvc 5控制器

  • ServerSide:Controller将我的C# - Class作为参数(因此自动将Json-Object转换为C# - Class),但由于我的服务器TimeZone设置为UTC +,因此生成的DateTime部分现在显示为10:00:00 1。

那么,我怎样才能将正确的UTC时间存储到我的C#DateTime?

谢谢:)

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你想忽略时区。你可以重置"使用DateTime

DateTime.SpecifyKind对象转换为UTC(不影响实际值)
DateTime utcTime = DateTime.SpecifyKind(originalDateTime, DateTimeKind.Utc);