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