我有一个案例,我可以单独拥有日期或日期+时区。因此,当我像这样用时区解析它时dateString := "2021-03-11T00:00:00Z"time1, _ := time.Parse(time.RFC3339,dateString); fmt.Println(time1); 它给出了准确的答案,但当我动态地它变得像DatedateString := "2021-03-11"time1, _ := time.Parse(time.RFC3339,dateString); fmt.Println(time1); //gives this 0001-01-01 00:00:00 +0000 UTC而在这两种情况下,我只想要像这样的日期“2021-03-11”。实现此目标的最佳方法是什么
1 回答
慕森王
TA贡献1777条经验 获得超3个赞
要仅解析日期,可以使用“2006-01-02”作为布局。time.Parse
请参阅官方文档,了解这些布局的处理方式和预期内容。time.Parse
正如@zerkms在评论中所说的那样,如果您检查错误,您将知道它是否成功,因此您可以尝试其他方法。粗略代码草图:time.Parse
dateString := "2021-03-11"
time1, err := time.Parse(time.RFC3339, dateString)
if err != nil {
time1, err = time.Parse("2006-01-02", dateString)
if err != nil {
log.Fatal("cannot parse using either layout:", err)
}
}
fmt.Println(time1)
在现实生活中,我可能会把它包装在一个函数中,该函数在放弃并返回错误之前尝试以两种方式解析。
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消