go - 解组 time.Time 改变响应
问题描述
我正在从服务器获取一些数据并取消编组 JSON。当我将日期时间字符串转换为字符串时,我将所有结果都作为 Un-Marshalled 对象,但是当我将其键入为 时time.Time
,对象的其余部分会被缩短。此外,日期是错误的,这可能是一个提示。
我开始将时间转换为字符串:
type History struct {
Id string
Created string
Items []HistoryItem
}
var response []History
json.Unmarshal([]byte(s), &response)
太好了,我得到一个这样的列表:
[{91096 2021-06-04T10:28:21.179-0400 [{Rank Ranked higher}]} {91078 2021-06-04T09:49:28.630-0400 [{Target end 8/Jun/21}]} //...etc
但是当我尝试将其转换为Time
:
type History struct {
Id string
Created time.Time
Items []HistoryItem
}
我得到一个单品,显然是错误的时间。该对象中也没有其他值。
[{91096 0001-01-01 00:00:00 +0000 UTC []}]
实际的 JSON 表示形式如下所示:
"created": "2021-06-04T10:28:21.179-0400",
解决方案
时间“2021-06-04T10:28:21.179-0400”不是可识别的格式。你必须自己解析它。您可以使用这种格式来解析它:
t, err:=time.Parse("2006-01-02T15:04:05.999999999-0700","2021-06-04T10:28:21.179-0400")
推荐阅读
- angular - 加载资源失败:服务器在 ion-calendar 中响应状态为 404(未找到)
- c# - 如何在 RhinoMocks 中存根一个接受 IEnumerable 的方法?
- r - 使用 R 中的 data.table 的虚拟代码折叠列
- nginx - Kubernetes 内部网络监控,没有任何 Sidecar
- visual-studio-2019 - Visual Studio 2019:循环槽嵌套文件
- sockets - 通信后关闭套接字连接
- vba - 在 MS ACCES / VBA 中将参数传递给函数的方法
- django - 使用 ssl / nginx /gunicorn 在 vagrant box 中访问(django)应用程序的问题
- c - 在不使用函数 isdigit 的情况下使用 fgets 时如何检查用户输入是否为字符串?
- excel - Excel V查找多个值问题