在错误情况下,我尝试返回
nil
,这会抛出错误:cannot use nil as type time.Time in return argument
time.Time
的 zero
值是什么?
Time.IsZero()
函数:time#Time.IsZero
。func (Time) IsZero
或者
func (t Time) IsZero() bool
IsZero函数用于判断t是否表示为零时间点,即公元1年1月1日00:00:00 UTC。
创建一个空的time.Time
结构体字面量会返回Go语言的零日期。因此,对于下面的打印语句:
fmt.Println(time.Time{})
输出结果为:
0001-01-01 00:00:00 +0000 UTC
为了完整起见,官方文档明确说明:
返回结果:The zero value of type Time is January 1, year 1, 00:00:00.000000000 UTC.类型Time的零值是UTC时间下的公元1年1月1日00:00:00.000000000。
在Go v1.18上测试通过
time.Time
的默认值为:
0001-01-01 00:00:00 +0000 UTC
使用IsZero()
函数进行检查是一种简洁的方式。
var zeroTime time.Time
if zeroTime.IsZero() {
// do something when zero
}
IsZero()
来检测时间是否为零。 - Mattnil
以表明没有设置任何值时,我会在函数签名中使用指针作为返回值。 - bio