格式化 JSON 回應中的時間戳
Go 的 time 套件提供了 time.Time 類型來表示時間戳。但是,當使用 json.NewEncoder 將 time.Time 物件編碼為 JSON 時,它會被格式化為機器友善的格式。如果您希望在JSON 回應中自訂時間戳格式,請執行以下步驟:
自訂時間戳格式
建立一個嵌入time.Time 的自訂類型並實作Marshaler 介面。
type JSONTime time.Time func (t JSONTime) MarshalJSON() ([]byte, error) { stamp := fmt.Sprintf("\"%s\"", time.Time(t).Format("Mon Jan _2")) return []byte(stamp), nil }
此程式碼定義了一個類型,將時間戳格式設定為「Mon Jan _2".
使用自訂時間類型
在文件結構中,使用JSONTime類型作為時間戳欄位:
type Document struct { Name string Content string Stamp JSONTime Author string }
範例程式碼
使用您的自訂初始化文件時間戳:
testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}
現在,您可以使用自訂時間戳格式傳送回應:
sendResponse(testDoc, w,r)
注意:
或者,您可以使用像timelib這樣的函式庫來輕鬆自訂時間戳格式。它為 time.Time 值提供了 MarshalJSON 方法。
以上是如何在 Go 的 JSON 回應中自訂時間戳格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!