golang解析mongodb中的ISODate类型
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,在golang中可以使用time.Time数据类型来保存mongodb中的ISODate时间。gtype Model struct { uploadDate time.Time `bson:"u
千家信息网最后更新 2025年11月14日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安全错误
数据库的锁怎样保障安全
软件开发年终述职报告
支付宝健康码提示服务器繁忙
边界网络安全产品
网络技术到底学的是什么
腾讯网络安全中心有啥
网络安全50强2019
云服务器更改dns无效
江西华为服务器维修调试云主机
网络安全法敏感级信息
lte自组织网络技术ppt
服务器cpu三维制图怎么样
企业无盘用什么服务器
网络安全手抄报的标语
广州cpu服务器散热器供应
深信服数据库安全审计系统
个人网络安全反思心得体会
dm数据库导出至excel
小程序可以读取本地数据库吗
柳州网络安全工程师线上学习
cf在连接服务器失败
不履行网络安全义务的最多罚
服务器cpu如何衡量性能
网络安全有英语翻译
传奇3原版服务端数据库
英国软件开发硕士
网络安全见底行动
景德镇物理服务器哪里好
微信开发者云开发数据库怎么打开
电子商务和软件开发
中关村网络安全与信息化联盟系列