Surmonter les diverpancies de format de date dans golang xml unmarshal avec le temps.Time
récupérer les données xml via repos apis Spesso présente un défi lorsque vous essayez de dénoncer les données dans une structure golang. Un problème fréquent survient lorsque le format de date renvoyé par l'API ne s'aligne pas sur le format de temps par défaut. Pour résoudre ce problème, la question explore s'il existe une méthode pour spécifier un format de date personnalisé lors de la non-rémunération dans un champ de temps. Cependant, Time.Time n'implémente pas cette interface, nous empêchant de spécifier un format de date personnalisé.
Pour surmonter cette limitation, nous pouvons définir un nouveau type de structure personnalisé qui enveloppe un champ de temps et implémente notre propre méthode UnmarshalXML. Cette méthode analysera la chaîne de date XML à l'aide de notre format souhaité et définira la valeur de temps sous-jacente en conséquence. // ... Dateented Customtime `XML:" Entredate "` // Utilisez notre type personnalisé qui implémente UnmarshalXml // ... } Type Struct entièrement en temps personnalisé { heure. } func (c * personnalisé) unmarshalxml (d * xml.decoder, start xml.startelement) Erreur { const shortform = "20060102" // format date de date yyyymmdd var v chaîne d.decodeelement (& amp; v, & amp; start) Parse, err: = time.parse (shortform, v) Si err! = Nil { retourner err } * C = Customtime {Parse} retour nil }
En utilisant cette méthode UNMarshalXML personnalisée, nous pouvons spécifier efficacement notre propre format de date et nous assurer que le champ de temps est rempli correctement lorsque des notes supplémentaires non rémunérées. Implémentez unmarshalxmlattr de manière similaire. Pour une référence supplémentaire, le terrain de jeu go fourni démontre l'implémentation: http://play.golang.org/p/efxznsje4a commenté
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3