首頁  >  文章  >  後端開發  >  如何在 Go 中解組格式不正確的日期時間?

如何在 Go 中解組格式不正確的日期時間?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-06 10:43:02191瀏覽

How to Unmarshal Incorrectly Formatted Datetimes in Go?

解組格式不正確的日期時間

在Go 中解組JSON 日期時間時,當JSON 中提供的時區偏移格式不正確時,會出現一個常見問題。根據 RFC3339,預期格式是帶冒號的 02:00,但某些來源可能會將其輸出為不含冒號的 0200。

自訂解組解決方案

至為了處理這種差異,可以定義支援兩種格式的自訂時間欄位類型:

此解決方案利用UnmarshalJSON 方法首先從JSON 字串中刪除引號。然後,它嘗試使用標準 RFC3339Nano 格式解析日期時間。如果失敗,它會回退到解析修改後的格式,從時區偏移中刪除冒號。

結構整合

要將此類型整合到結構中,請定義它為:

這允許將JSON 解組到Test 結構中,並以正確的日期和時間填充Time 字段,無論時區偏移是否以冒號分隔。

關於時間格式的注意事項

時間格式字串中使用 2006 年是 Go 原始版本的歷史產物。它沒有實際意義,不會影響日期時間的正確性或格式。

以上是如何在 Go 中解組格式不正確的日期時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn