戈朗的时代。日期不会在超过一个月有效天数的天数引发错误



我正在尝试从我得到的输入中构造一个GoLangtime.Date()实例;像这样:

time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC)

其中"年"、"月"和"日"是从文件中读取的。 在大多数情况下,它工作正常,但是如果我通过"2000-01-32",它会自动解释为Go Playground中的"2000-02-01"示例。

有没有办法强制返回错误而不是在像 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

最新更新