格式化 JSON 编码的时间戳
在使用 Go 时,可能会遇到需要格式化 time.Time 类型输出的时间戳。默认情况下,JSON 将时间编组为 RFC3339,从而导致格式不理想。
自定义时间戳格式
要自定义时间戳格式,请为自定义时间类型实现 Marshaler 接口:
import ( "encoding/json" "fmt" ) 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 }
将此自定义类型应用于您的文档struct:
type Document struct { Name string Content string Stamp JSONTime Author string }
编组时,您可以将 Document 实例初始化为:
testDoc := model.Document{"Meeting Notes", "These are some notes", JSONTime(time.Now()), "Bacon"}
生成的 JSON 现在将具有您所需格式的格式化时间戳,例如“May 2014 年 15 日”。
以上是如何在 Go 的 JSON 编码中自定义时间戳格式?的详细内容。更多信息请关注PHP中文网其他相关文章!