返回顶部
首页 > 资讯 > 后端开发 > GO >golang解析mongodb中的ISODate类型
  • 530
分享到

golang解析mongodb中的ISODate类型

2024-04-02 19:04:59 530人浏览 八月长安
摘要

在golang中可以使用time.Time数据类型来保存mongoDB中的ISODate时间。gtype Model struct {    &n

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 CST
err = 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()的源码就会明白了。

您可能感兴趣的文档:

--结束END--

本文标题: golang解析mongodb中的ISODate类型

本文链接: https://lsjlt.com/news/39101.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • golang解析mongodb中的ISODate类型
    在golang中可以使用time.Time数据类型来保存mongodb中的ISODate时间。gtype Model struct {    &n...
    99+
    2024-04-02
  • 使用 golang time.Now() 解析 mongoDB 中的日期
    问题内容 我正在通过 time.now() 使用 go 创建一个日期,并将其存储在 mongodb 中,没有任何问题。日期看起来像 2023-02-28t20:10:46.140+00...
    99+
    2024-02-06
  • 使用自定义类型解析 golang 中的 JSON 数组
    php小编百草为你带来了一篇关于解析golang中的JSON数组的文章。在golang中,我们可以使用自定义类型来解析复杂的JSON数组。这种方法不仅能够更好地理解和处理JSON数据,...
    99+
    2024-02-09
    json数组
  • golang函数类型的依赖关系解析
    函数类型依赖关系解析简介:函数类型用于定义接受和返回其他函数的函数。依赖关系存在于 a 接收或返回 b 类型的函数类型之间。解析方法包括手动解析、使用工具(如 goimports)和静态...
    99+
    2024-04-28
    golang 函数依赖关系
  • 解析Go 中的 rune 类型
    刚接触 Go 语言时,就听说有一个叫rune的数据类型,即使查阅过一些资料,对它的理解依旧比较模糊,加之对陌生事物的天然排斥,在之后很长一段时间的编程工作中,我都没有让它出现在我的代...
    99+
    2024-04-02
  • 深入了解Golang中的数据类型
    目录1. 基本数据类型1.1 整数型1.2 Golang 提供了两种浮点型数据类型:1.3 布尔型1.4 字符型1.5 字符串型2. 复合数据类型2.1 数组2.2 切片2.3 字符...
    99+
    2023-05-18
    Golang数据类型使用 Golang数据类型 Go 数据类型
  • 解析Golang中引用类型是否进行引用传递
    目录引言引用类型引用变量(reference variable)和引用传递(pass-by-reference)Golang是否存在引用变量(reference variable)字...
    99+
    2024-04-02
  • MongoDB中使用哪些类型的锁
    这篇文章主要介绍MongoDB中使用哪些类型的锁,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MongoDB使用多粒度锁,允许操作锁定全局,数据库或集合级别,并允许各个存储引擎在集合级别下实现自己的并发控制(例如,在...
    99+
    2023-06-14
  • 返回 Golang 中的联合类型
    Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《返回 Golang 中的联合类型》带大家来了解一下##content_title##,...
    99+
    2024-04-04
  • 一文详解Golang中的切片数据类型
    目录含义定义三个要素切片与数组的区别示例代码切片内存分布切片定义分类数组生成切片示例代码切片索引直接声明切片定义语法代码示例使用make定义切片常用操作长度计算容量计算判断是否为空切...
    99+
    2024-04-02
  • golang函数类型的性能比较分析
    在 go 语言中,函数类型对性能有显著影响。性能比较显示,普通函数最优(147.08 m ops),其次是匿名函数(158.01 m ops),最后是闭包(10.02 m ops)。这些...
    99+
    2024-04-28
    函数类型 性能比较 golang 作用域
  • TypeScript中的递归类型示例解析
    目录正文什么是递归类型?示例1:树形结构示例2:链表总结正文 在这篇博客中,我们将深入探讨TypeScript中的递归类型。递归类型是一种非常强大的功能,它允许我们对具有自相似结构...
    99+
    2023-05-14
    TypeScript递归类型 TypeScript 类型
  • 深入浅析Java8中的类型注解
    这篇文章将为大家详细讲解有关深入浅析Java8中的类型注解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是类型注解在java 8之前,注解只能是在声明的地方所使用,比如类,方法,属性;j...
    99+
    2023-05-31
    java8 类型注解 ava
  • MongoDB中数组类型的操作示例
    这篇文章将为大家详细讲解有关MongoDB中数组类型的操作示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在MongoDB的模式中,我们经常将一些数据存储到数组类型中,...
    99+
    2024-04-02
  • Golang断言在类型判断和类型转换中的重要性讲解
    Golang断言在类型判断和类型转换中的重要性讲解 一、引言Golang作为一门静态类型的编程语言,其类型系统在编程过程中起到了非常重要的作用。对于数据的类型判断和类型转换,Golang提供了断言(asser...
    99+
    2024-01-29
    类型转换 类型判断 重要性 断言
  • 怎么在mongodb中将string类型转换成Date类型
    在mongodb中将string类型转换成Date类型的方法:1.启动mongodb;2.登录mongodb数据库;3.使用数据库;4.使用find()方法转换;具体步骤如下:首先,在命令行中启动mongodb服务;net start Mo...
    99+
    2024-04-02
  • MongoDB复制集角色类型详解
                          MongoDB复制集角色类型Mo...
    99+
    2024-04-02
  • Golang中泛型是什么?详细解析
    泛型是允许函数和类型的定义可以为多种类型工作,从而提高可重用性和可维护性的特性。go 中的泛型使用方括号表示类型参数,可以接受各种可比较类型。它的用例包括消除重复代码、提高可读性、改善类...
    99+
    2024-04-03
    golang 泛型
  • 【MongoDB学习笔记25】MongoDB的索引类型
    创建索引可以指定一些选项,使用不同的选项建立的索引会有不同的行为。 一、唯一索引唯一索引可以确保每一个文档的指定键都有唯一的值。例如,想确定文档中的username键不重复,创建一个唯一索引:&g...
    99+
    2024-04-02
  • golang中有哪些类型的断言
    golang中有哪些类型的断言?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。package mainimport ("github...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作