web-dev-qa-db-ja.com

Goのtime.Timeの「ゼロ」値は何ですか?

エラー状態で、nilを返そうとしましたが、エラーがスローされました。

cannot use nil as type time.Time in return argument

time.Timezero値とは何ですか?

118
Mingyu

空のtime.Time構造体リテラルを呼び出すと、Goのゼロ日付が返されます。したがって、次のprintステートメントの場合:

fmt.Println(time.Time{})

出力は次のとおりです。

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

完全を期すために、 公式ドキュメント は明示的に次のように述べています:

タイプTimeのゼロ値は、1年1月1日00:00:00.000000000 UTCです。

118
zeantsoi

代わりにTime.IsZero()関数を使用する必要があります。

func (Time) IsZero

func (t Time) IsZero() bool
IsZero reports whether t represents the zero time instant, January 1, year 1, 00:00:00 UTC.
241
gextra

Time.Timeのゼロ値は0001-01-01 00:00:00 +0000 UTCです- http://play.golang.org/p/vTidOlmb9P を参照してください

2
dethtron5000