美好的一天,我的同事们,
我现在花了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?
谢谢:)
答案 0 :(得分:2)
如果我理解正确,你想忽略时区。你可以重置"使用DateTime
:
DateTime.SpecifyKind
对象转换为UTC(不影响实际值)
DateTime utcTime = DateTime.SpecifyKind(originalDateTime, DateTimeKind.Utc);