time.ParseInLocation,位置为零

我正在解析这样的位置:


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在解析后检查时,时间部分看起来很好(即字符串被解析为我期望的时间),但位置是nil.


为什么是这样?我需要将时间解析为纽约时间(以便我可以调用.UTC()它并将其转换为 UTC 时间。


猛跑小猪
浏览 294回答 1
1回答

慕尼黑8549860

日期字符串末尾的 Z 表示“zulu”,即 UTC 时间;所以你的时间明确表明它是UTC。参见 tools.ietf.org/html/rfc3339#section-2如果你传递一个有效的偏移量,你会得到一个有效的结果: https: //play.golang.org/p/QW8M3_eznDLd, err := time.ParseInLocation(time.RFC3339, fmt.Sprintf("%sT%s:00.000+05:00", "2001-01-01", "12:34"), estLocation)文档相应地指出了这一点(强调我的):在没有时区信息的情况下,Parse 将时间解释为 UTC;ParseInLocation 将时间解释为给定位置https://golang.org/pkg/time/#ParseInLocation
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go