ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### **时间序列化与反序列化** ```go // 时间序列化和反序列化 var CSTZone = time.FixedZone("CST", 8*3600) // 固定东八区(CST: China Standard Time) // JsonTime 自定义时间 // 设置当前时间: jsonDate := JsonTime(time.Now()) type JsonTime time.Time // MarshalJSON JsonDate序列化 func (t JsonTime) MarshalJSON() ([]byte, error) { b := make([]byte, 0, len("2006-01-02 15:04:05")+2) b = append(b, '"') b = time.Time(t).AppendFormat(b, "2006-01-02 15:04:05") b = append(b, '"') b = bytes.Trim(b, "\"") if bytes.Equal(b, []byte("0001-01-01 00:00:00")) { b = []byte("") } return b, nil } // UnmarshalJSON JsonDate反序列化 func (t *JsonTime) UnmarshalJSON(data []byte) error { b := bytes.Trim(data, "\"") // 去除两端双引号 jDate, err := time.Parse("2006-01-02 15:04:05", string(b)) if err != nil { return err } *t = JsonTime(jDate) return nil } func (t *JsonTime) String() string { stamp := time.Time(*t).Format("2006-01-02 15:04:05") if stamp == "0001-01-01 00:00:00" { return "" } return stamp } ```