web-dev-qa-db-fra.com

Comment analyser un horodatage ISO 8601 dans GoLang?

Je sais que je dois utiliser une présentation de l'heure dans GoLang (comme indiqué ici https://golang.org/src/time/format.go ), mais je ne trouve pas la présentation d'un horodatage ISO 8601.

Si cela peut aider, j'obtiens le timestamp de l'API Facebook. Voici un exemple d'horodatage: 2016-07-25T02:22:33+0000

8

J'ai trouvé cette mise en page au travail: "2006-01-02T15: 04: 05-0700"

10

La RFC3339 est équivalente à la norme ISO 8601. Plus précisément, son format est identique, la RFC3339 a juste des exigences plus strictes (par exemple, elle nécessite une représentation complète de la date avec une année à 4 chiffres).

Quelle est la différence entre les formats de date ISO 8601 et RFC 3339?

Vous pouvez donc utiliser la constante time.RFC3339 comme mise en page.

1
Kaedys

Le problème ici est que La RFC3339 exige que le décalage de zone soit défini comme "+00: 00" (ou "Z" dans le cas de l’UTC), alors que ISO8601 autorise "+0000".

De RFC3339 :

[...]

time-numoffset  = ("+" / "-") time-hour ":" time-minute
time-offset     = "Z" / time-numoffset

[...]

full-time       = partial-time time-offset
date-time       = full-date "T" full-time

Donc, au lieu de la disposition time.RFC3339

"2006-01-02T15:04:05Z07:00"

vous devez utiliser:

"2006-01-02T15:04:05Z0700"
1
AndreKR