为了账号安全,请及时绑定邮箱和手机立即绑定

访问类型声明父方法

访问类型声明父方法

Go
慕桂英546537 2022-06-01 17:43:20
我正在解组来自 JSON API 的 GET 请求。其中一些字段是 Unix 时间戳(以毫秒为单位)。对于这些字段,我编写了一个处理解组的方法。为此,我需要创建一个新的本地类型Datetime。type Datetime time.Timetype Response struct {  Status    string   `json:"status"`  CreatedAt Datetime `json:"created_at"`}// Handles unmarshalling of Time from the APIfunc (dt *Datetime) UnmarshalJSON(b []byte) error {    var unixTimeMs int64    if err := json.Unmarshal(b, &unixTimeMs); err != nil {        return err    }    *dt = Datetime(time.Unix(0, unixTimeMs*1000000))    return nil}现在我有了这个新的 Response 对象,我想time.Time在 Datetime 上调用方法。我尝试过强制转换对象(即 response.CreatedAt.(time.Time)),但这会导致恐慌。我怎样才能调用类似time.Time#stringon 的方法Datetime?
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

日期时间转换time.Time为调用Time方法。例子:

fmt.Println(time.Time(dt).String())

另一种方法是使用带有嵌入时间字段的结构:

type Datetime struct {
     time.Time}

所有time.Time方法都被提升为Datetime类型。将 UnmarshalJSON 方法修改为 setdt.Time而不是*dt.


查看完整回答
反对 回复 2022-06-01
  • 1 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号