golang解析mongodb中的ISODate类型
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,在golang中可以使用time.Time数据类型来保存mongodb中的ISODate时间。gtype Model struct { uploadDate time.Time `bson:"u
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
高科技互联网
鸠鸠互联网科技
互联网科技会
互联网 科技公司
善班互联网科技
凡科互联网科技
润盈互联网科技
互联网科技宣传片
天扬科技互联网广告
深圳互联网科技怎么样
移动互联网科技股
互联网校园科技培训
996高科技互联网公司
群盈汇互联网科技有限公司
华中科技大学互联网的牛人
有人说阿里系是互联网科技企业
江苏互联网科技小贷
抖集互联网科技技术咨询
众联互联网络科技
互联网科技快速发展优美句子
博彦科技互联网金融
赫美联合互联网科技
长亮科技 互联网金融
互联网 科技馆
中国科技互联网公司收入
武汉健翔互联网络科技有限公司
互联网公司黑科技创始人
广州新华互联网科技学校电竞方面
互联网领先科技宣传片
米泉互联网科技专业怎么样