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

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

Susan Sarandon
Susan Sarandon原創
2024-12-23 22:46:14806瀏覽

How to Customize Timestamp Formatting in Go's JSON Responses?

使用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中文網其他相關文章!

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