解组格式不正确的日期时间
在 Go 中解组 JSON 日期时间时,当 JSON 中提供的时区偏移格式不正确时,会出现一个常见问题。根据 RFC3339,预期格式是带冒号的 02:00,但某些来源可能会将其输出为不带冒号的 0200。
自定义解组解决方案
至为了处理这种差异,可以定义一个支持两者的自定义时间字段类型格式:
此解决方案利用 UnmarshalJSON 方法首先从 JSON 字符串中删除引号。然后,它尝试使用标准 RFC3339Nano 格式解析日期时间。如果失败,它会回退到解析修改后的格式,从时区偏移量中删除冒号。
结构集成
要将此类型集成到结构中,请定义它为:
这允许将 JSON 解组到 Test 结构中,并填充 Time 字段具有正确的日期和时间,无论时区偏移是否以冒号分隔。
时间格式注意事项
在中使用 2006 年时间格式字符串是 Go 最初版本的历史产物。它没有实际意义,不会影响日期时间的正确性或格式。
以上是如何在 Go 中解组格式不正确的日期时间?的详细内容。更多信息请关注PHP中文网其他相关文章!