我正在解析这样的位置: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 时间。
1 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
日期字符串末尾的 Z 表示“zulu”,即 UTC 时间;所以你的时间明确表明它是UTC。参见 tools.ietf.org/html/rfc3339#section-2
如果你传递一个有效的偏移量,你会得到一个有效的结果: 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)
文档相应地指出了这一点(强调我的):
在没有时区信息的情况下,Parse 将时间解释为 UTC;ParseInLocation 将时间解释为给定位置
https://golang.org/pkg/time/#ParseInLocation
- 1 回答
- 0 关注
- 293 浏览
添加回答
举报
0/150
提交
取消