Go 中 time.Time 的“零”值是多少?

新手上路,请多包涵

在错误情况下,我试图返回 nil ,这会引发错误:

 cannot use nil as type time.Time in return argument

--- 的 zero 值是 time.Time

原文由 Mingyu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

调用一个空的 time.Time struct literal 将返回 Go 的零日期。因此,对于以下打印语句:

 fmt.Println(time.Time{})

输出是:

 0001-01-01 00:00:00 +0000 UTC

为了完整起见, 官方文档 明确指出:

Time 类型的零值为 1 年 1 月 1 日 00:00:00.000000000 UTC。

原文由 zeantsoi 发布,翻译遵循 CC BY-SA 3.0 许可协议

您应该改用 Time.IsZero() 函数:

 func (Time) IsZero

或者

func (t Time) IsZero() bool

IsZero 报告 t 是否代表零时刻,1 月 1 日,1 年,00:00:00 UTC。

原文由 gextra 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题