我正在使用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. 我想從字符串轉換爲Date
- 4. 將utc時間字符串轉換爲datetime對象
- 5. 在JavaScript中將datetime字符串轉換爲UTC
- 6. 在javascript中將UTC字符串轉換爲紀元時間
- 7. C#將UTC int轉換爲DateTime對象
- 8. 將UTC時間轉換爲DateTime對象
- 9. 將UTC日期轉換爲日期時間字符串Javascript
- 10. 將日期字符串轉換爲utc時間格式javascript
- 11. 使用javascript將日期字符串轉換爲UTC + 0530格式
- 12. 無法將UTC轉換爲IST,它仍然只返回UTC
- 13. 如何將字符串轉換爲UTC日期?
- 14. Date對象和UTC方法
- 15. 我想將此字符串轉換爲android中的json對象?
- 16. 如何將字符串轉換爲UTC/GMT時區的日期
- 17. 我如何將1415071800000轉換爲utc的時間在jQuery或JavaScript?
- 18. 在java中將字符串時間和分鐘轉換爲UTC
- 19. 在Delphi中將UTC字符串轉換爲TDatetime
- 20. Python:我如何將UTC時間戳轉換爲python utc datetime?
- 21. 的JavaScript字符串轉換爲UTC日期
- 22. 將Extjs中的utc格式日期字符串轉換爲日期對象
- 23. 將UTC轉換爲當地時間Javascript
- 24. 如何將一個字符串UTC日期轉換爲Swift中的NSDate
- 25. 字符串到UTC時間轉換
- 26. UTC時間到字符串轉換
- 27. 在Python中將UTC字符串轉換爲本地日期時間字符串?
- 28. 將UTC字符串轉換爲DateTime時出現異常
- 29. 將字符串轉換爲我想要的對象
- 30. 將DateTime + TimeZone轉換爲UTC
請顯示您的字符串的確切格式 – Alnitak
'2016-11-22T17:14:00' – seroth