为了账号安全,请及时绑定邮箱和手机立即绑定

动态解析日期

动态解析日期

Go
桃花长相依 2022-08-15 16:42:53
我有一个案例,我可以单独拥有日期或日期+时区。因此,当我像这样用时区解析它时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)

在现实生活中,我可能会把它包装在一个函数中,该函数在放弃并返回错误之前尝试以两种方式解析。


查看完整回答
反对 回复 2022-08-15
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信