2 回答
TA贡献2065条经验 获得超14个赞
要从自定义格式取消封接,您需要创建包装器并实现接口。time.Timejson.Unmarshaler
type CustomTime struct {
time.Time
}
func (t *CustomTime) UnmarshalJSON(b []byte) (err error) {
date, err := time.Parse(`"2006-01-02T15:04:05.000-0700"`, string(b))
if err != nil {
return err
}
t.Time = date
return
}
现在,将您的时间字段指定为CustomTime
Resolved CustomTime `json:"resolutiondate,omitempty"`
Created CustomTime `json:"created,omitempty"`
要写入 Excel,您需要提供有关实现的更多信息。
但示例解决方案:
func (t *CustomTime) ExcelDate() string {
return t.Format("01/02/2006")
}
TA贡献1789条经验 获得超10个赞
您可以做的是,将字符串包装为您自己的自定义类型,并使其实现接口:Unmarshaler
type Unmarshaler interface {
UnmarshalJSON([]byte) error
}
然后花点时间使用JSON并将其解析为并使用您的自定义布局进行格式化。time.Timemm/dd/yyyy
type Date string
func (d *Date) UnmarshalJSON(bytes []byte) error {
dd, err := time.Parse(`"2006-01-02T15:04:05.000+0000"`, string(bytes))
if err != nil{
return err
}
*d = Date(dd.Format("01/02/2006"))
return nil
}
现在您可以使用
Created Date `json:"created,omitempty"`
在你的围棋结构和解封。
在此处运行示例代码
- 2 回答
- 0 关注
- 224 浏览
添加回答
举报
