使用Time.Time 格式化傳出JSON 中的時間戳
在Go 中,當發送time.Time 類型作為JSON 回應的一部分時,通常需要將時間戳格式化為所需的格式,而不是預設的ISO 8601 格式。為此,您可以採用以下技術:
自訂編組和解組
Marshall 介面可以透過自訂類型來實現,以確定其 JSON 表示形式。同樣,Unmarshaler 介面可用於控制將 JSON 資料解析為自訂類型。對於 time.Time,我們將定義一個實作 MarshalJSON 的 JSONTime 類型:
type JSONTime time.Time func (t JSONTime) MarshalJSON() ([]byte, error) { // Format the time in the desired format stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2")) return []byte(stamp), nil }
更新文件類型
在文件類型中,更改 Stamp 欄位輸入JSONTime:
type Document struct { ... Stamp JSONTime ... }
範例用法
現在,初始化測試文件時:
testDoc := model.Document{ ... Stamp: JSONTime(time.Now()), ... }
編碼為JSON時,時間戳會依照指定的格式進行格式化:
{ ... "Stamp": "May 15, 2014" ... }
此方法提供了對JSON回應中時間戳格式的靈活性和控制,允許根據特定要求進行自訂。
以上是如何在 Go 的 JSON 回應中自訂時間戳格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!