在错误条件下,我尝试返回nil,这会抛出错误:

cannot use nil as type time.Time in return argument

时间的零值是多少?时间?


当前回答

时间的零值。时间为0001-01-01 00:00:00 +0000 UTC参见http://play.golang.org/p/vTidOlmb9P

其他回答

在Go v1.18上测试

time的默认值。时间是:

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

使用IsZero()函数检查是一种简单的方法。

var zeroTime time.Time

if zeroTime.IsZero() {
    // do something when zero
}

调用空时间。时间结构字面值将返回Go的零日期。因此,对于下面的打印语句:

fmt.Println(time.Time{})

输出结果为:

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

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

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

时间的零值。时间为0001-01-01 00:00:00 +0000 UTC参见http://play.golang.org/p/vTidOlmb9P

你应该使用Time.IsZero()函数:

func (Time) IsZero

or

func (t Time) IsZero() bool

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