Golang結構體json的時間格式化解決辦法

wanzi發表於2021-03-11
今天開發的過程中遇到一個問題,資料庫內有個日期欄位(型別:date)查詢出來後會是 2021-01-01T20:08:23.000000028+08:00 這種格式,而我只要2021-01-01,下面列出解決辦法
// 定義個型別別名
type JsonTime time.Time
// 實現它的json序列化方法
func (this JsonTime) MarshalJSON() ([]byte, error) {
    var stamp = fmt.Sprintf("\"%s\"", time.Time(this).Format("2006-01-02")) // Format內即是你想轉換的格式
    return []byte(stamp), nil
}

// 我們儲存資料的結構體型別設定為上邊的別名
type Workday struct {
   Id int
   Date JsonTime
}

資料獲取好後直接解析就可以了
d1, _ := json.Marshal(work.Date)
fmt.Printf( "%s",d1)
現在d1 就是Y-m-d格式了
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章