Format Masa Tarikh Tidak Konsisten Unmarshal
Apabila berurusan dengan data JSON, tarikh unmarshaling boleh membawa kepada ketidakkonsistenan disebabkan oleh format mengimbangi zon waktu yang berbeza-beza. Walaupun mekanisme penghuraian standard Go menjangkakan pengimbangan zon waktu dalam format 02:00, sesetengah data mungkin mengandungi format yang salah seperti 0200.
Untuk menangani perkara ini, Go menyediakan kaedah unmarshaling tersuai untuk mengendalikan kedua-dua format zon waktu yang betul dan tidak betul. Berikut ialah pendekatan yang disemak:
type MyTime struct { time.Time } func (self *MyTime) UnmarshalJSON(b []byte) (err error) { s := string(b) // Remove quotation marks s = s[1:len(s)-1] // Attempt to parse using RFC3339Nano format t, err := time.Parse(time.RFC3339Nano, s) if err != nil { // If parsing fails, try custom format without ':' t, err = time.Parse("2006-01-02T15:04:05.999999999Z0700", s) } self.Time = t return } type Test struct { Time MyTime `json:"time"` }
Dalam kaedah unmarshaling tersuai ini (UnmarshalJSON), kami:
Pendekatan ini memastikan bahawa kedua-dua rentetan datetime yang betul dan tidak betul dihuraikan dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Membongkar Format Masa Tarikh Tidak Konsisten dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!