为了账号安全,请及时绑定邮箱和手机立即绑定

time.ParseInLocation,位置为零

time.ParseInLocation,位置为零

Go
猛跑小猪 2022-06-21 16:55:33
我正在解析这样的位置: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


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 293 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信