将 RFC-3339 日期字符串解析为 time.Time [重复]

分享于2022年07月17日 date go 问答
【问题标题】:将 RFC-3339 日期字符串解析为 time.Time [重复](Parsing RFC-3339 date string to time.Time [duplicate])
【发布时间】:2022-02-23 18:04:20
【问题描述】:

如何将字符串日期格式转换为日期,我的日期字符串格式为:

YYYY-MM-DD 

接下来我尝试了,但没有运气。

t, err := time.Parse("%Y-%m-%d", "2011-01-19")
t, err := time.Parse("YYYY-MM-DD", "2011-01-19")
t, err := time.Parse("2016-01-20", "2011-01-19")

以上所有语句都给出了解析错误。

  • 最后一个例子有效,但是你在 2016 中犯了一个错误,应该是 2006 ,而 20 应该是 02 。所以: t, err := time.Parse("2006-01-02", "2011-01-19")

【解决方案1】:

请阅读 time.Parse 的文档:

布局通过显示参考时间的定义来定义格式

2006 年 1 月 2 日星期一 15:04:05 -0700 MST

如果是值就会被解释;它用作输入格式的示例。然后将对输入字符串进行相同的解释。

所以正确的格式是

t, err := time.Parse("2006-01-02", "2011-01-19")