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

go time.Parse,格式“02/01/2006”有效,但“02/01/2003”无效

go time.Parse,格式“02/01/2006”有效,但“02/01/2003”无效

Go
蛊毒传说 2023-07-26 17:14:32
为什么第一种格式有效而第二种格式无效package mainimport (    "fmt"    "time")func main() {    date := "21/07/1993"    in := "02/01/2006"    out := "02-01-2006"    dt, err := time.Parse(in, date)    if err != nil {        fmt.Println(err)    }    fmt.Println(dt.Format(out))    date = "21/07/1993"    in = "02/01/2003"    out = "02-01-2003"    dt, err = time.Parse(in, date)    if err != nil {        fmt.Println(err)    }    fmt.Println(dt.Format(out))}输出21-07-1993parsing time "21/07/1993" as "02/01/2003": cannot parse "93" as "0"01-01-1012https://play.golang.org/p/Ht0XZVs54ta
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

我认为这相当简单,因为数字 21 不可能是一个月。由于它不可能是一个月,因此解析器可以推断出这是一天。但是,在第二个示例中,“02”可以是一个月或一天。您必须将数据整理成一种格式,以便更清楚是哪一天、哪一个月。



查看完整回答
反对 回复 2023-07-26
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

这是一个常见的困惑。日期格式不是示例日期。每个日期元素都由格式中的特定数字表示。2006 表示年,02 表示日,01 表示月。因此 2003 不是有效格式的一部分。



查看完整回答
反对 回复 2023-07-26
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

您必须在格式字符串中使用 2006 年。



查看完整回答
反对 回复 2023-07-26
  • 3 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

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