/ / Go time.Parse () obtient l'erreur «mois hors plage» - aller, heure, format

Go time.Parse () obtenant l'erreur «mois hors plage» - go, time, format

Je suis nouveau sur Go et j'analysais une chaîne de format d'heure nginx. Vous pouvez vérifier mon code ici:

package main

import (
"time"
"log"
"fmt"
)

func main(){
//nginx time format
nginx_time :="03/Apr/2017:08:29:05 +0800"
t,err:=time.Parse("02/Jan/2016:15:04:05 MST",nginx_time)

if err != nil {
log.Fatal(err)
}

fmt.Println(t.Format("2006-01-02 15:04:05"))
}

J'ai reçu l'erreur suivante:

GOROOT=/usr/local/go
GOPATH=/usr/local/share/go:/Users/sinopex/goroot:/Users/sinopex/goroot
/usr/local/go/bin/go build -o "/private/var/folders/5b/yf1f_9lj06bfvqvcq2h9myph0000gn/T/Build 1.go and rungo" /Users/sinopex/goroot/src/github.com/sinopex/golang/example/test/1.go
"/private/var/folders/5b/yf1f_9lj06bfvqvcq2h9myph0000gn/T/Build 1.go and rungo"
2017/04/03 12:17:12 parsing time "03/Apr/2017:08:29:05 +0800": month out of range
http://stackoverflow.com/questions/ask#
Process finished with exit code 1

Des idées sur ce que je fais de manière incorrecte?

Je vous remercie.

Réponses:

6 pour la réponse № 1

Votre format d'analyse ne correspond pas au format de référence et au format d'entrée à 2 endroits:

  1. L'année dans le format de référence doit être 2006

  2. Le décalage du fuseau horaire doit être spécifié par des nombres et non par le nom du fuseau horaire: -0700

Alors:

t, err := time.Parse("02/Jan/2006:15:04:05 -0700", nginx_time)

play.golang: https://play.golang.org/p/enJY0VBt3a