Démarrer les champs XML de type time.Time dans Golang
Lorsque vous travaillez avec la récupération de données XML à l'aide de l'API REST dans Golang, ce n'est pas Il est rare de rencontrer un champ de date qui n'est pas conforme au format d'analyse time.Time par défaut. Cette divergence peut entraîner des échecs de démarshalage lorsque vous tentez d'attribuer la date récupérée à un champ time.Time dans une structure GO.
Malheureusement, il n'existe aucun moyen simple de spécifier explicitement le format de date souhaité à la fonction de démarshalage. Cependant, il existe une solution de contournement qui consiste à définir une structure personnalisée pour représenter le champ de date avec le format souhaité.
Voici comment y parvenir :
Voici un exemple de code illustrant cette approche :
type Transaction struct { // ... other fields DateEntered customTime `xml:"enterdate"` // Use customTime to handle specific date format } type customTime struct { time.Time } func (c *customTime) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { const shortForm = "20060102" // Custom date format: "yyyymmdd" var v string d.DecodeElement(&v, &start) parse, err := time.Parse(shortForm, v) if err != nil { return err } *c = customTime{parse} return nil }
En employant cette approche, vous pouvez surmonter la limitation liée à la spécification d'un format de date pendant le processus de démarchage et gérer de manière transparente les dates qui ne sont pas conformes au format par défaut.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!