登录
首页 >  Golang >  Go问答

如何设置和解析正文请求中的时间?

来源:stackoverflow

时间:2024-04-27 14:51:27 409浏览 收藏

本篇文章向大家介绍《如何设置和解析正文请求中的时间?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我正在使用 go 和 gin gonic,我有这样的东西:

import (
  "time"
)

type bodytype struct {
  yourdate: time.time
}

func dothingwithpost(c *gin.context) {
  var thebody bodytype
  c.bindjson(&thebody)

  c.json(http.statusok, gin.h{"data": thebody.yourdate})
}

func main() {
    r.post("/", dothingwithpost)
}

我的意图是创建一个像这样的请求正文:

{
  YourDate: 1589887669644
}

然后服务器自动获取我给出的 int,并将该日期解析为日期格式 time.time,有没有一种干净的方法来做到这一点?如果我尝试编写自己的函数来接收 int64 类型的“yourdate”并解析为 time.time 我会在这里重新发明轮子吗?

解决方案


您可以创建自定义类型并使用它 bodytyte 结构。

type specialdate struct {
    time.time
}

type bodytype struct {
    yourdate specialdate
}

并为 specialdate 编写 unmarshaljson 将毫秒解析为 time.time

func (sd *SpecialDate) UnmarshalJSON(input []byte) error {
    millis, err := strconv.ParseInt(string(input), 10, 64)
    if err != nil {
        panic(err)
    }
    tm := time.Unix(0, millis*int64(time.Millisecond))
    sd.Time = tm
    return nil
}

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>