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

问题描述 投票:0回答:5

在错误情况下,我尝试返回

nil
,这会引发错误:

cannot use nil as type time.Time in return argument

zero
time.Time
值是多少?

time go null
5个回答
443
投票

您应该使用

Time.IsZero()
函数:

func (Time) IsZero

func (t Time) IsZero() bool

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


292
投票

调用空的

time.Time
结构体文字将返回 Go 的零日期。因此,对于以下打印语句:

fmt.Println(time.Time{})

输出为:

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

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

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


7
投票

时间的零值。时间为

0001-01-01 00:00:00 +0000 UTC
请参阅 http://play.golang.org/p/vTidOlmb9P


3
投票

在 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
}


0
投票

DT *时间.时间

bun:"dt"

tmp, _ := time.Parse(tools.Short, "2024-01-01") if !tmp.IsZero() { DT= &tmp }

© www.soinside.com 2019 - 2024. All rights reserved.