为什么第一种格式有效,而第二种无效
package main
import (
"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-1993
parsing time "21/07/1993" as "02/01/2003": cannot parse "93" as "0"
01-01-1012
答案 0 :(得分:2)
这是一个常见的困惑。日期格式不是示例日期。每个日期元素均以格式中的特定数字表示。 2006表示年份,02是日期,01是月份。因此2003年不是有效格式的一部分。
答案 1 :(得分:2)
您必须在格式字符串中使用Year 2006。
答案 2 :(得分:0)
我认为这很简单,因为数字21不能是一个月。由于不可能是一个月,因此解析器可以推断出这是一天。但是,在第二个示例中,“ 02”可以是一个月或一天。您必须将数据整理成一种格式,这样才能更清楚地确定是哪一天和哪个月。