Penghuraian Tarikh XML Tersuai dalam Go dengan masa. Medan Masa
Golang menyediakan fleksibiliti untuk menyahmarshal data XML ke dalam struktur tersuai, tetapi ia tidak 't menyokong menentukan format tarikh tersuai untuk masa. Medan masa apabila membuka XML. Ini boleh membawa kepada ralat penghuraian apabila format tarikh yang dikembalikan berbeza daripada format Go lalai.
CustomUnmarshaler Solution
Untuk mengatasi had ini, anda boleh mencipta struct tersuai dengan masa tanpa nama. Medan masa dan laksanakan kaedah UnmarshalXML anda sendiri. Kaedah ini akan menghuraikan rentetan tarikh menggunakan format tersuai anda dan menetapkan medan masa. Masa dengan sewajarnya.
type customTime struct { time.Time } func (c *customTime) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error { const shortForm = "20060102" // yyyymmdd date format var v string d.DecodeElement(&v, &start) parse, err := time.Parse(shortForm, v) if err != nil { return err } *c = customTime{parse} return nil }
Menggabungkan Struktur Tersuai
Kemas kini struct Transaksi anda kepada sertakan medan masa tersuai:
type Transaction struct { //... DateEntered customTime `xml:"enterdate"` //... }
Kini, pembongkaran XML akan menggunakan struct Masa tersuai dan menghuraikan rentetan tarikh mengikut format yang anda tentukan.
Nota Tambahan
Jika elemen XML menggunakan atribut untuk tarikh, anda perlu melaksanakan UnmarshalXMLAttr dengan cara yang sama. Rujuk contoh dalam coretan kod yang disediakan untuk panduan.
Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Penghuraian Tarikh untuk masa. Medan Masa dalam Pergi Apabila Menghapuskan XML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!