golang解析mongodb中的ISODate类型
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,在golang中可以使用time.Time数据类型来保存mongodb中的ISODate时间。gtype Model struct { uploadDate time.Time `bson:"u
千家信息网最后更新 2025年02月02日golang解析mongodb中的ISODate类型
在golang中可以使用time.Time数据类型来保存mongodb中的ISODate时间。
g
type Model struct { uploadDate time.Time `bson:"uploadDate"`}m := Model{}if err := c.Find(nil).Select({"_id": 0, "uploadDate": 1}).One(&m); err != nil { fmt.Printf("failed to find date, error %s\n", err) os.Exit(1)}fmt.Printf("%+v\n", m)
从输出中可以看到golang输出的时间格式是CST时区,golang在处理的过程中将ISO时间转换成了CST时间,从时间面板上来看也比mongodb中的快上8个小时,这个是正常的。
那么golang做插入操作或者时间比较操作的时候需要自己转换时间戳吗?答案是不需要的,来看下插入的例子。
重新插入一条记录,记录的Time字段为当前时间,在golang中可以通过time.Now获取当前时间,查看输出可以看到是CST的时间格式。
now := time.Now()fmt.Printf("%+v\n", now)// output: 2016-05-12 14:34:00.998011694 +0800 CSTerr = c.Insert(Model{Time: now})if err != nil { panic(err)}
可以看到存储到mongodb中时间的自动转换为了ISO时间,时间少了8个小时。小结一下就是golang和mongodb中的时间交互不需要考虑额外的东西,因为驱动都进行了转换。
有时我们会将time.Time的时间以字符串的形式存储,那么要和mongodb交互的时候就需要转换time.Time格式
timeString := "2016-05-12 14:34:00.998011694 +0800 CST"t, err := time.Parse("2006-01-02 15:04:05.999999999 -0700 MST", timeString)if err != nil { panic(err)}fmt.Printf("%+v\n", t)
代码中比较难理解的就是time.Parse的第一个参数,这个其实是golang当中的定义,详细看下time.Time.String()的源码就会明白了。
时间
格式
输出
小时
就是
时候
存储
类型
东西
中将
代码
例子
参数
可以通过
字段
字符
字符串
小结
形式
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
交通软件开发利用维护
wps服务器返回格式错误
怎么隐藏网站服务器ip啊
南通市公安局网络安全保卫支队
荒宅数据库小说叫什么
温州求索网络技术有限公司
开源数据库 有哪些
宿豫区网络技术价格表格
数据库进阶书籍
忻州市妇联开展网络安全宣传活动
手机版逃离塔科夫服务器
哪个城市好找软件开发工作室
wps数据库软件
文山服务器显卡代理
如何做好网络安全产品
yml文件链接数据库
北京工控软件开发靠谱吗
各大文献数据库有哪些特点和区别
计算机网络技术多少钱
租用服务器注意事项
济南兼职软件开发
什么是华为数据库
市场分析数据库
土地质量数据库在哪查
嵌入式软件开发课设
新四大发明和网络技术的关系
软件测试数据库的缺陷
数据库分组查询的目的是什么
刘晓艳背单词软件开发
郑州大学软件开发在哪个校区