web-dev-qa-db-fra.com

Quelle est la valeur `zéro` pour time.Time in Go?

En cas d'erreur, j'ai essayé de renvoyer nil, ce qui génère l'erreur:

cannot use nil as type time.Time in return argument

Quelle est la valeur zero pour time.Time?

118
Mingyu

L'appel d'un littéral time.Time vide vide renverra la date zéro de Go. Ainsi, pour la déclaration d'impression suivante:

fmt.Println(time.Time{})

La sortie est:

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

Par souci d'exhaustivité, le documentation officielle indique explicitement:

La valeur zéro du type Heure est le 1er janvier de l'année 1, 00: 00: 00.000000000 UTC.

118
zeantsoi

Vous devez utiliser la fonction Time.IsZero () à la place:

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

La valeur zéro pour time.Time est 0001-01-01 00:00:00 +0000 UTC Voir http://play.golang.org/p/vTidOlmb9P

2
dethtron5000