首頁 >後端開發 >Golang >如何在 Go 的 JSON 回應中自訂時間戳格式?

如何在 Go 的 JSON 回應中自訂時間戳格式?

Linda Hamilton
Linda Hamilton原創
2024-12-25 14:13:17186瀏覽

How Can I Customize Timestamp Formatting in Go's JSON Responses?

格式化 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中文網其他相關文章!

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