首页 > 解决方案 > 如何验证时间类型的“必需”标签

问题描述

一个JsonTime类型:

type JsonTime struct { time.Time }
func (jt JsonTime) MarshalJSON() ([]byte, error) { // ... }
func (jt *JsonTime) UnmarshalJSON(data []byte) error { // ... }

带有required标签的请求结构:

type Req struct {
    StartTime *JsonTime `json:"start_time" schema:"start_time" validate:"required"`
    EndTime   *JsonTime `json:"end_time" schema:"end_time" validate:"required"`
}

主要的:

var req Req
vErr := Valid.Struct(req)

呃:

err(schema: error converting value for "start_time". Details: parsing time "2020-01-01 00:00:00" as "2006-01-02T15:04:05Z07:00": cannot parse " 00:00:00" as "T" (and 1 other error),<nil>)

如何使用我的标准时间格式而不是 UTC 时间格式进行“必需”验证?

标签: validationgo

解决方案


推荐阅读