我对时间有问题。时间被杜松子酒解析。
我发送:
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\""
}
1条答案
按热度按时间ia2d9nvy1#
问题源于URL编码。加号(+)在编码过程中丢失,导致其转换为空格字符。因此,解析器无法识别此格式并拒绝它。