Chrome将没有Z的ISO时间解释为UTC; C#问题 [英] Chrome interprets ISO time without Z as UTC; C# issue

查看:444
本文介绍了Chrome将没有Z的ISO时间解释为UTC; C#问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

运行此jsfiddle:Chrome上的 http://jsfiddle.net/E9gq9/7/ , FF和IE,你会得到:

Run this jsfiddle: http://jsfiddle.net/E9gq9/7/ on Chrome, FF, and IE and you get:

Chrome:

Chrome http://images.devs-on.net/Image/vBTz86J0f4o8zlL3-Region.png

Firefox:

Firefox http://images.devs-on.net/Image/aNPxNPUpltyjVpSX-Region.png

IE:

IE http:// images.devs-on.net/Image/WXLM5Ev1Viq4ecFq-Region.png

Safari:

Safari http://images.devs-on.net/Image/AEcyUouX04k2yIPo-Region .png

ISO 8601 似乎没有说明如何解释一个没有尾随Z的字符串。

ISO 8601 does not appear to say how a string without a trailing Z should be interpreted.

我们的服务器ASP.NET MVC4)将UTC时间从我们的数据库中拖出为 DateTime ,只需将其填充到JSON中即可。正如你所看到的,因为我们在浏览器上的结果不一致。

Our server (ASP.NET MVC4) is pulling UTC times out of our database as DateTimes and simply stuffing them in JSON. As you can see because of this we are getting inconsistent results on the browser.

我们应该在服务器端附加Z吗?

Should we just append Z to them on the server side?

推荐答案


Chrome解释ISO时没有Z为UTC; C#问题

Chrome interprets ISO time without Z as UTC; C# issue

哪个是正确的,它是Firefox和IE的错误。

Which is correct, it's Firefox and IE that are getting it wrong.

虽然您链接的文章确实说明了当没有 Z 如果没有给出UTC时间表示的UTC关系信息,这意味着什么时间假定是在当地时间。),更重要的是 ECMAScript5规范很清楚地表明,没有时区信息意味着 Z

While the article you linked does indeed say what it means when there's no Z ("If no UTC relation information is given with a time representation, the time is assumed to be in local time."), the more important thing is that the ECMAScript5 specification says quite clearly that no timezone information means Z:


缺席时区偏移量的值为Z。

The value of an absent time zone offset is "Z".

是的,我会可能确保字符串有一个 Z ,因为这似乎给你一致的结果。

Yes, I would probably ensure the string has a Z on it, as that seems to give you consistent results.

这篇关于Chrome将没有Z的ISO时间解释为UTC; C#问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆