我试着在go中解析字符串到时间,这是我所做的:
dateTime := fmt.Sprintf("%s %s CST", dateValue, timeValue)
date, err := time.Parse("2006-1-2 150405 MST", dateTime)我收到以下错误消息:
parsing time "2012-4-9 174031 CST" as "2006-1-2 150405 MST": cannot parse "2012-4-9 174031 CST" as "2006"
从错误消息中可以看出,我传入的dateTime值是正确的。我还尝试了以下操作,它工作得很好:
dateTime := "2012-4-9 174031 CST"
date, err := time.Parse("2006-1-2 150405 MST", dateTime)这让我困扰了几天。有人能帮我指出错误在哪里吗?谢谢!
发布于 2017-12-31 16:56:34
你的价值观不是你所期望的。我怀疑您在一个或多个值中有空格。下面是一个生成相同错误的示例(请注意dateValue上的前导空格):
https://play.golang.org/p/UwKhjQs6Nig
dateValue := " 2012-4-9"
timeValue := "174031"
dateTime := fmt.Sprintf("%s %s CST", dateValue, timeValue)
date, err := time.Parse("2006-1-2 150405 MST", dateTime)如果遇到这样的问题,第一步是在使用它们之前打印您的值,以验证它们是否完全符合您的期望。如果发布帮助信息,也可以尝试在play.golang.org上重现-这样做的过程通常会帮助您自己找到问题。
错误消息可能会更好,但我怀疑它正在做的事情是采用格式的第一部分(年份),试图在字符串值中找到它,但失败了,因此报告没有找到2006年。
https://stackoverflow.com/questions/48041140
复制相似问题