Go语言解析2021-05-06 00:00:00 +0530 IST字符串的正确time layout是什么
Go时间字符串解析问题解答
核心结论
Go语言的时间解析layout不能直接使用待解析的时间样例,必须基于Go官方指定的参考时间 Mon Jan 2 15:04:05 MST 2006 按对应格式位拼接。
正确layout参数
你需要的格式对应的正确layout为:2006-01-02 15:04:05 -0700 MST
正确代码示例
addedOn := "2021-05-06 00:00:00 +0530 IST" layout := "2006-01-02 15:04:05 -0700 MST" // 直接解析即可识别字符串中自带的时区信息 resTime, err := time.Parse(layout, addedOn) if err != nil { // 自定义错误处理逻辑 panic(err) } // 如果需要强制指定时区解析可以使用ParseInLocation // loc, _ := time.LoadLocation("Asia/Kolkata") // IST对应亚洲加尔各答时区 // resTime, err := time.ParseInLocation(layout, addedOn, loc)
错误原因说明
你之前的写法直接将待解析的时间字符串作为layout参数传入,Go解析时会将layout中的字符与参考时间的格式位做映射,第一个字符2会被识别为参考时间中代表月份的1的对应位,后续解析时格式无法匹配就抛出了报错。
内容的提问来源于stack exchange,提问作者elliot
相关产品推荐
相关产品推荐

