我正在解析這樣的位置:estLocation, err := time.LoadLocation("America/New_York")d, err := time.ParseInLocation(time.RFC3339, fmt.Sprintf("%sT%s:00.000Z", c.Date, c.Open), estLocation)當(dāng)我d在解析后檢查時(shí),時(shí)間部分看起來(lái)很好(即字符串被解析為我期望的時(shí)間),但位置是nil.為什么是這樣?我需要將時(shí)間解析為紐約時(shí)間(以便我可以調(diào)用.UTC()它并將其轉(zhuǎn)換為 UTC 時(shí)間。
1 回答

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
日期字符串末尾的 Z 表示“zulu”,即 UTC 時(shí)間;所以你的時(shí)間明確表明它是UTC。參見(jiàn) tools.ietf.org/html/rfc3339#section-2
如果你傳遞一個(gè)有效的偏移量,你會(huì)得到一個(gè)有效的結(jié)果: https: //play.golang.org/p/QW8M3_eznDL
d, err := time.ParseInLocation(time.RFC3339, fmt.Sprintf("%sT%s:00.000+05:00", "2001-01-01", "12:34"), estLocation)
文檔相應(yīng)地指出了這一點(diǎn)(強(qiáng)調(diào)我的):
在沒(méi)有時(shí)區(qū)信息的情況下,Parse 將時(shí)間解釋為 UTC;ParseInLocation 將時(shí)間解釋為給定位置
https://golang.org/pkg/time/#ParseInLocation
- 1 回答
- 0 關(guān)注
- 325 瀏覽
添加回答
舉報(bào)
0/150
提交
取消