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

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

Susan Sarandon
發布: 2024-12-23 22:46:14
原創
749 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板