登录
首页 >  Golang >  Go问答

为什么在 Go 中 Parse() 函数无法识别 time.ANSIC 布局?

来源:stackoverflow

时间:2024-02-22 11:57:24 363浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《为什么在 Go 中 Parse() 函数无法识别 time.ANSIC 布局?》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我目前正在研究时间库,我不确定为什么布局部分的 time.ansic 没有达到我的预期。 在 parse() 函数中,有一个语法 func parse (layout, value string) ,根据我的理解,我可以在布局部分使用,如 time.unixdate、ansic、rfc3339 等。

当我像下面这样编码时

const layout = "jan 2, 2006 at 3:04pm (mst)"
    sm, _ := time.parse(layout, "feb 4, 2014 at 6:05pm (pst)")
    fmt.println(sm)

它也有效,我得到了 2014-02-04 18:05:00 +0000 pst。

但是,当我在布局部分添加 time.ansic 时

tm, _ := time.Parse(time.ANSIC, "Feb 4, 2014 at 6:05pm (PST)")
    fmt.Println(tm)

我得到了 0001-01-01 00:00:00 +0000 utc。

我不知道为什么我有时间。我非常感谢您的帮助!


正确答案


Go 丢弃从标准库中的任何方法返回的错误不是惯用的。在处理返回值之前,请务必检查它们。

如果您注意到解析函数中的错误,您会发现 time.ANSIC 的布局与您尝试解析的日期字符串不兼容

将时间“2014 年 2 月 4 日下午 6:05(太平洋标准时间)”解析为“Mon Jan _2 15:04:05 2006”:无法将“2014 年 2 月 4 日下午 6:05(太平洋标准时间)”解析为“周一”

来自https://pkg.go.dev/time#Parse

第二个参数必须可以使用第一个参数提供的格式字符串(布局)进行解析。

https://go.dev/play/p/jU-EvL5W3Hp

今天关于《为什么在 Go 中 Parse() 函数无法识别 time.ANSIC 布局?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>