首页 > 后端开发 > Golang > 正文

如何在 Go 中解组格式不正确的日期时间?

Mary-Kate Olsen
发布: 2024-11-06 10:43:02
原创
204 人浏览过

How to Unmarshal Incorrectly Formatted Datetimes in Go?

解组格式不正确的日期时间

在 Go 中解组 JSON 日期时间时,当 JSON 中提供的时区偏移格式不正确时,会出现一个常见问题。根据 RFC3339,预期格式是带冒号的 02:00,但某些来源可能会将其输出为不带冒号的 0200。

自定义解组解决方案

至为了处理这种差异,可以定义一个支持两者的自定义时间字段类型格式:

此解决方案利用 UnmarshalJSON 方法首先从 JSON 字符串中删除引号。然后,它尝试使用标准 RFC3339Nano 格式解析日期时间。如果失败,它会回退到解析修改后的格式,从时区偏移量中删除冒号。

结构集成

要将此类型集成到结构中,请定义它为:

这允许将 JSON 解组到 Test 结构中,并填充 Time 字段具有正确的日期和时间,无论时区偏移是否以冒号分隔。

时间格式注意事项

在中使用 2006 年时间格式字符串是 Go 最初版本的历史产物。它没有实际意义,不会影响日期时间的正确性或格式。

以上是如何在 Go 中解组格式不正确的日期时间?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!