這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
golang的json的時間格式化解決方案
1.通過資料查詢的時候指定號格式,這樣就不要再轉格式了
2.通過time.Time類型穿件別名,然後為這個別名類實現MarshalJSON方法。
以下來自golang的原來注釋
If an encountered value implements the Marshaler interface
// and is not a nil pointer, Marshal calls its MarshalJSON method
// to produce JSON. If no MarshalJSON method is present but the
// value implements encoding.TextMarshaler instead, Marshal calls
// its MarshalText method.
// jsontest project main.gopackage mainimport ( "encoding/json" "fmt" "time")type jsonTime time.Time//實現它的json序列化方法func (this jsonTime) MarshalJSON() ([]byte, error) { var stamp = fmt.Sprintf("\"%s\"", time.Time(this).Format("2006-01-02 15:04:05")) return []byte(stamp), nil}type Test struct { Date jsonTime `json:"date"` Name string `json:"name"` State bool `json:"state"`}func main() { var t = Test{} t.Date = jsonTime(time.Now()) t.Name = "Hello World" t.State = true body, _ := json.Marshal(t) fmt.Println(string(body))}
輸出結果:
{ "date":"2016-11-04 13:42:24", "name":"Hello World", "state":true}