登录
首页 >  Golang >  Go问答

将MongoDB Go驱动程序中的primitive.Timestamp类型转换为Golang中的time.Time类型的方法是什么?

来源:stackoverflow

时间:2024-03-11 09:45:27 277浏览 收藏

一分耕耘,一分收获!既然都打开这篇《将MongoDB Go驱动程序中的primitive.Timestamp类型转换为Golang中的time.Time类型的方法是什么?》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

mongo 的 go 驱动程序返回 bson 时间戳,如 https://godoc.org/go.mongodb.org/mongo-driver/bson/primitive#Timestamp 有没有办法将其转换为 time.Time


解决方案


https://docs.mongodb.com/manual/reference/bson-types/#timestamps

正如你在mongodb官网看到的,bson timestamps包含两个值,'t'表示自unix纪元以来的秒数,'i'表示给定秒内操作的递增序数

所以如果你想将bson时间戳转换为time.time,你可以使用time.unix(timestamp.t, 0)

类似地将当前time.time转换为primitive.timestamp类型,我们可以使用

primitive.Timestamp{T: uint32(time.Now().Unix()), I: 0}

在 mongo 对象建模中使用 primitive.timestamp 会在 mongo 集合中生成 timestamp(1639732596, 0) 数据类型。当编码为 json 时,它会产生如下对象:

在大多数用例中,使用 time.time 类型作为对象模型就足够了。这将导致 mongo 集合中出现 isodate("2021-12-17t09:14:33.608z") 数据类型。当编码为 json 时,会产生如下字符串:

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>