date - GoLang的时间。日期在一个月内的有效日期之后的几天内不会引发错误

标签 date go time

我试图从我得到的输入构造一个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/

相关文章:

mysql - 按日期和时间选择记录

javascript - 客户一周的第一天

regex - Golang 替换所有换行符

regex - 如何在 golang 中使用正则表达式重命名 json 字符串中的根字段而不影响同名的内部字段?

javascript - 设置 JavaScript 日期格式,例如 20130511T0825

MySQL从连接表中选择最大日期

mysql - Golang 发送带有状态的 json 响应的正确方法

c# - 在 C# 中将时间转换为格式化字符串

android - 如何在 Android 的 UI 屏幕上显示耗时

java - JFormattedTextField 使用正则表达式格式化程序?