提问人:Quique Torras 提问时间:8/25/2023 最后编辑:Quique Torras 更新时间:8/28/2023 访问量:54
解析 DateTime Go 杜松子酒
Parsing DateTime Go Gin
问:
我有时间问题。时间由 gin 解析。
我正在发送:
curl --location 'http://127.0.0.1:5000/v1/search/?from=2023-08-25T17:00:00+03:00'
我的函数和结构是:
type Filters struct {
From time.Time `form:"from" binding:"required,gte" time_format:"2006-01-02T15:04:05Z07:00" json:"from"`
}
func Search(c *gin.Context) {
t := time.Now()
filters := Filters{}
if err := c.ShouldBindWith(&filters, binding.Query); err != nil {
log.Infof("Filter parameter error => %s", err.Error())
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
// More code
}
错误消息表明解析输入的时区部分存在问题,但我不明白为什么。
{
"error": "parsing time \"2023-08-25T17:00:00 03:00\" as \"2006-01-02T15:04:05Z07:00\": cannot parse \" 03:00\" as \"Z07:00\""
}
答:
0赞
Quique Torras
8/26/2023
#1
问题源于 URL 编码。加号 (+) 在编码过程中丢失,导致其转换为空格字符。因此,解析器无法识别此格式并拒绝了它。
评论