首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析GO中的时间时出现奇怪的错误消息

解析GO中的时间时出现奇怪的错误消息
EN

Stack Overflow用户
提问于 2017-12-31 16:42:37
回答 1查看 187关注 0票数 0

我试着在go中解析字符串到时间,这是我所做的:

代码语言:javascript
复制
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值是正确的。我还尝试了以下操作,它工作得很好:

代码语言:javascript
复制
dateTime := "2012-4-9 174031 CST"
date, err := time.Parse("2006-1-2 150405 MST", dateTime)

这让我困扰了几天。有人能帮我指出错误在哪里吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-12-31 16:56:34

你的价值观不是你所期望的。我怀疑您在一个或多个值中有空格。下面是一个生成相同错误的示例(请注意dateValue上的前导空格):

https://play.golang.org/p/UwKhjQs6Nig

代码语言:javascript
复制
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年。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48041140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档