我创建了一个结构,它包含两个时间。时间格式的字段,以 json 标记命名:start_time和end_time。
type MyStruct struct {
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time"`
}
当我尝试使用gin框架通过HTTP发送PUT请求以更新这些值时,我发送的时间格式在发送的结构中发生了变化。我发送的内容:
curl -X PUT -H 'Content-Type: application/json'
http://my_address -d '{
"start_time": "2021-04-27T22:24:31Z",
"end_time": "2021-11-01T22:24:31Z"
}'
它接收的内容:
start_time="2021-04-27 22:24:31 +0000 UTC",
end_time="2021-11-01 22:24:31 +0000 UTC",
另一方面,我将结构保存在沙发库中,作为查询的返回值,我正在发回文档(我的结构):
我的查询:
Update BucketName as e
set start_time="2021-04-27 22:24:31 +0000 UTC",
end_time="2021-11-01 22:24:31 +0000 UTC" where ( my document equality condition)
returning e
并且它执行时没有错误。当我尝试读取返回的结构时,
我的代码来阅读它:
var s domain.MyStructSample //
err = result.One(&s)
if err != nil {
if err == gocb.ErrNoResult {
return nil, errors.New("there is no result")
}
logger.ZSLogger.Errorf("error on update one item from my struct with error :%s", err)
return nil, err
}
gocb在这些时间项上生成错误,这是错误:
"message":"error on update one item from my struct with error :parsing time \"\"2021-11-01 22:24:31 +0000 UTC\"\" as \"\"2006-01-02T15:04:05Z07:00\"\": cannot parse \" 22:24:31 +0000 UTC\"\" as \"T\""}
顺便说一句,正如我所说,更新是在没有错误的情况下完成的(查询执行没有错误)。那么我该怎么办?
绝地无双
相关分类