我正在使用JavaScript,我有一个JSON调用,它返回我的UTC DateTimes作为字符串,并且我想将它们转换为UTC日期对象。有没有人做过这个?我根本不想去当地时间。我有一个UTC字符串,我想在JavaScript中将它转换为UTC Date对象
回答
在任何隐约现代的浏览器,你就传递到Date
与上年底"Z"
:
var dt = new Date(yourString + "Z");
这个格式是对JavaScript在ES5规范在2009年12月定义的"Z"
是重要的确保字符串被解释为UTC,而不是本地时间¹。
Date
对象跟踪特定的时刻,而不管时区。如果您使用Date
的UTC
方法(getUTCFullYear
,getUTCMonths
等),则将以UTC格式访问该时间。 (如果使用非UTC方法,你访问它转换为本地时间)。
例子:
var str = "2016-11-22T17:14:00";
var dt = new Date(str + "Z");
console.log("UTC string:");
console.log(dt.toUTCString());
console.log("Local string");
console.log(dt.toString());
console.log("Hours UTC: " + dt.getUTCHours());
console.log("Hours local: " + dt.getHours());
¹有一点历史的对此。当格式最初添加到ES5规范时,假设假设是ISO-8601的子集,但ES5规范说没有时区指示符表示UTC,而在ISO-8601中,没有时区指示符表示当地时间。这导致不一致的实现,其中一些是真正的ES5规范,和其他人是真正为ISO-8601。该错误是固定在ES2015规范在2015年六月现在JavaScript的日期/时间格式真的是ISO-8601的一个子集,但JavaScript的Date
总是有一个时间成分(一路下降到毫秒的方式),而ISO-8601的概念,即一个值可能只作为特定,因为它是精确的。也就是说,在2016-11-22
JavaScript是一种特定的日期和时间,但在ISO-8601,它只是日期(没有时间是隐含的)。因此,电流(ES2016)JavaScript规范says:
当时间区偏移是不存在,日期唯一形式被解释为UTC时间和日期 - 时间形式解释为本地时间。
所以2016-11-22
被解释为2016年11月22日午夜(UTC),但2016-11-22T00:00:00
在当地时间午夜解释为2016年11月22日。奇怪,但是是真的。当然,在说明书中该最新的语言可能不正确,所有实现来实现,但(我注意到,铬54得到它错了,例如)。
底线:您需要"Z"
以确保将字符串解析为UTC。
'Z'使我从我的理解当地时间。当我做新日期('UTC_string')时,我得到一个本地时间对象https://jsfiddle.net/n9aqysq9/ – seroth
@seroth否,Z代表“祖鲁时间”,另一种指UTC + 0000的方式 – Alnitak
@ seroth:正如Alnitak所说,Z意味着UTC。关于你的小提琴:同样,正如我在答案中所说的那样,“Date”实例代表一个时间点,而不考虑时区,它是*如何访问* Date中的数据,以确定您是否在当地时间看到它或UTC。你的小提琴使用默认的'toString',它转换为当地时间。如果您使用'toUTCString'代替,您将获得UTC信息:https://jsfiddle.net/n9aqysq9/1/ –
- 1. 想要将给定的UTC字符串对象转换为UTC日期对象
- 2. 将utc时间字符串转换为datetime对象
- 3. 在javascript中将UTC字符串转换为纪元时间
- 4. 将UTC时间转换为DateTime对象
- 5. 使用javascript将日期字符串转换为UTC + 0530格式
- 6. 将日期字符串转换为utc时间格式javascript
- 7. 将UTC日期转换为日期时间字符串Javascript
- 8. 无法将UTC转换为IST,它仍然只返回UTC
- 9. 如何将字符串转换为UTC/GMT时区的日期
- 10. 在Python中将字符串转换为DateTime到UTC格式,postgresql
- 11. 在Delphi中将UTC字符串转换为TDatetime
- 12. 在java中将字符串时间和分钟转换为UTC
- 13. 我如何将1415071800000转换为utc的时间在jQuery或JavaScript?
- 14. 的JavaScript字符串转换为UTC日期
- 15. 将UTC转换为当地时间Javascript
- 16. 如何将一个字符串UTC日期转换为Swift中的NSDate
- 17. 字符串到UTC时间转换
- 18. 将字符串转换为我想要的对象
- 19. 将UTC时间字符串转换为javascript中的本地时区
- 20. 将我的JavaScript日期时间转换为来自PST的UTC
- 21. Ruby将一个看起来像utc格式的字符串转换为日期
- 22. Javascript:将UTC日期()对象转换为本地时区
- 23. 我的日期被转换为UTC?
- 24. 将字符串转换为JavaScript对象
- 25. Pyspark添加列将现有的javascript utc列转换为字符串
- 26. 将UTC转换为本地
- 27. UTC TO GMT转换在Javascript
- 28. 如何将日期时间字符串转换为UTC?
- 29. 如何将时间字符串转换为UTC?
- 30. JavaScript的UTC日期转换
请显示您的字符串的确切格式 – Alnitak
'2016-11-22T17:14:00' – seroth