解組不一致的日期時間格式
處理JSON 資料時,解組日期時間可能會因為不同的時區偏移格式而導致不一致。雖然 Go 的標準解析機制期望時區偏移量採用 02:00 格式,但某些資料可能包含不正確的格式,例如 0200。
為了解決這個問題,Go 提供了自訂解組方法來處理正確和不正確的時區格式。這是修改後的方法:
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"` }
在此自訂解組方法 (UnmarshalJSON) 中,我們:
此方法可確保正確解析格式正確和格式錯誤的日期時間字串。
以上是如何在 Go 中解組不一致的日期時間格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!