在错误情况下,我尝试返回
nil
,这会引发错误:
cannot use nil as type time.Time in return argument
zero
的 time.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
为了完整起见,官方文档明确指出:
Time 类型的零值是 1 年 1 月 1 日 00:00:00.000000000 UTC。
在 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
}
DT *时间.时间
bun:"dt"
tmp, _ := time.Parse(tools.Short, "2024-01-01") if !tmp.IsZero() { DT= &tmp }