go - 如何将日期字符串绑定(bind)到结构?

标签 go time bind glide-golang go-echo

type TestModel struct {
  Date     time.Time `json:"date" form:"date" gorm:"index"`
  gorm.Model
}

我正在使用 echo 框架,并且 我有一个类似于上面的结构,我得到了像 '2021-09-27' 这样的字符串数据,我该如何将它绑定(bind)到该结构?

func CreateDiary(c echo.Context) error {
    var getData model.TestModel
    if err := (&echo.DefaultBinder{}).BindBody(c, &getData); err != nil {
        fmt.Print(err.Error())
    }
   return c.JSON(200, getData)
}

当我像这样编写代码时,出现以下错误:

code=400, message=parsing time "2021-09-27" as "2006-01-02T15:04:05Z07:00": cannot parse "" as "T", internal=parsing time "2021-09-27" as "2006-01-02T15:04:05Z07:00": cannot parse "" as "T"

我是一个 golang 初学者,你能给我一个简单的例子吗??,请。

我正在使用 echo 框架

最佳答案

键入 CustomTime time.Time

func (ct *CustomTime) UnmarshalParam(param string) error {
    t, err := time.Parse(`2006-01-02`, param)
    if err != nil {
        return err
    }
    *ct = CustomTime(t)
    return nil
}

引用:https://github.com/labstack/echo/issues/1571

关于go - 如何将日期字符串绑定(bind)到结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69342582/

相关文章:

linux - 无法与 Chef 一起设置 GOPATH

go - 我必须发出数千条提醒,有什么办法可以避免每分钟都出现提醒吗?

php - cakePHP时区和时差

c++ - 如何在 C++ 中获取当前时间(以毫秒为单位)?

windows - 如何在 Windows 中将套接字绑定(bind)到设备?

go - 范围的奇怪行为

javascript - 在 javascript/typescript 中向 Date 添加天数会给出完全错误的日期

Python:绑定(bind)一个未绑定(bind)的方法?

java - 无法在 Servlet 中查找 RMI 服务器

google-app-engine - CookieJar 不捕获传入的 cookie