我试图从我得到的输入构造一个GoLang time.Date()
实例;就像是:
time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC)
从文件中读取“年”,“月”和“日”的位置。
在大多数情况下,它都能正常工作,但是,如果我通过“2000-01-32”,它将自动解释为“2000-02-01” Example in The Go Playground。
在像abovr这样的情况下,是否有办法强制返回错误,而不是坚持一天?
谢谢。
最佳答案
不直接,但是您可以将解析的值与给定的参数进行比较。除非规范化,否则它们应该相同。
func parse(year, month, day int) (time.Time, bool) {
t := time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC)
y, m, d := t.Date()
return t, y == year && int(m) == month && d == day
}
实际应用中:https://play.golang.org/p/UJYszuyJwnx
关于date - GoLang的时间。日期在一个月内的有效日期之后的几天内不会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62008522/