长知识了,mongo的时间居然这个样子

news2025/1/24 4:55:43

1、前言

最近一直在使用mongo数据库,前面文章也介绍了一直在做数据过期的事情,

mongo中的数据过期时间之前在程序中增加了一个字段

【Springboot系列】项目启动时怎么给mongo表加自动过期索引

之前看到时间字段没有时区的信息,没有关注,因为只要能定时过期就好了。

今天同事问我为什么我写入的数据没有时区,这个问题才去看

2、解决办法

2.1 给容器增加时区

想当然的以为是容器没加时区,所以导致的在程序中使用new Date()的时候没有时区

这里也介绍下怎么给容器增加时区

2.1.1 在容器启动时

将主机系统的时区映射到容器中。

具体来说,可以使用Docker run命令的 -v选项挂载主机的时区文件到容器中,并将其链接到容器的 /etc/localtime文件。例如,如果主机系统使用的是东八区时区(即北京时间),可以运行以下命令启动容器并设置时区:

docker run -it --name tyjt-mongo -m 10000M --memory-swap -1 -p 27017:27017 -v /home/data/mongo/db:/data/db -v /etc/localtime:/etc/localtime:ro --restart always -d mongo  --wiredTigerCacheSizeGB 2

其中 -v /etc/localtime:/etc/localtime:ro 表示将主机的 /etc/localtime 文件挂载到容器的 /etc/localtime 目录中,并使用只读模式。

-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \

启动容器后,可以通过在容器内运行 date 命令来验证时区是否已成功设置。

 和本地时间对了下,是一样的

2.1.2 在dockerfile中设置

大部分的时候我们都是自己开发的程序,在dockerfile中设置也很方便,毕竟脚本不是一直可以接触,自己能控制的就不求别人了

以在Dockerfile中使用 ENV 指令设置 TZ 变量,指定时区信息。例如:

FROM [base_image] ENV TZ=Asia/Shanghai

以上是以基础镜像的方式设置时区,如需快速设置时区可以使用第一种方法。

2.2 mongo中时间的原因

给容器加了时区以后发现还是没能解决问题,可真是麻烦,到底是什么原因呐,一查才发现

MongoDB 存储的日期数据类型是 ISODate 类型,它存储的时间是 UTC 标准时间。因此,在插入数据时,如果不指定时区,MongoDB 会将当前时间存储为 UTC 时间。

试了好几种方式都没解决时区问题

对于这种时间有几种方式处理

  • 如果在程序中加载,可以自己再转回时区,我这里只做定期删除,不需要读,无所谓
  • 如果是读的话可以转为时间戳long型或者格式化之后存入mongo

3、总结

mongo用了挺长一段时间了,日期这个字段类型用得不多,今天也算是学习了,

吃一堑长一智,也算是明白了,总结下下次不迷惑了

最后

求点赞,评论,关注三连


有趣的矩阵:看得懂又好看的线性代数》由北京大学出版社出版,从中国古代数学思想、益智游戏、企业管理、计算机科学、博弈论等角度出发,介绍了线性代数和矩阵理论中的相关概念和理论在上述领域的应用。

通过阅读本书,读者对线性代数在实际问题中的应用会有更加直观的了解,有助于激发读者对线性代数的学习兴趣和学习热情。

本书内容通俗易懂、生动有趣,特别适合中学生、大学生及各年龄层的数学爱好者作为线性代数入门读物使用。另外,本书也适合作为各类大中专院校的教学参考书使用。

京东购买链接:《有趣的矩阵:看得懂又好看的线性代数 线性代数学习好帮手》(马婧瑛,汪文帅)【摘要 书评 试读】- 京东图书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/468394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务注册中心选型:Zookeeper、Eureka、Nacos、Consul和Etcd

注册中心基本概念 什么是注册中心? 注册中心主要有三种角色: 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 服务消费者&#xff08…

怎么知道网站服务器有没有被攻击?

​  一个网站服务器遭到攻击可能会给企业带来巨大的金融损失,因此,企业需要及时发现服务器是否被攻击。但是,企业如何知道自己的服务器是否被攻击呢?下面,我们来看一些服务器被攻击的警告信号。 1.网络延迟增加 在网络攻击中&a…

记一次运气非常好的渗透到服务器的经历

平平无奇的客服平台 这个客服平台是有RCE的,如果上传到的不是oss服务器,存储在本地服务器的话 在返回端口的url是存在st2 root权限,由于是客服后台服务器,没有啥有用价值的信息 直接替换私钥连服务器 继续翻找有用的信息 配置文件…

Django性能监视工具django-silk的使用

django-silk 是一个轻量级的 Django 应用性能监视工具,可帮助您了解 Django 应用的性能瓶颈、数据库查询等问题。它可以使用在django前后端分离的项目中,直接通过请求后台API接口即可对性能进行监视。以下是 django-silk 的使用步骤: 1.安装…

资本认可 | 开源网安成为中国未来独角兽企业,引领软件安全不断发展

4月11日,第七届万物生长大会中国未来独角兽大会盛大召开,本次大会中国投资发展促进会创投专委会联合微链共同发布了《2023中国未来独角兽TOP100榜单》,开源网安成功入选榜单。 《2023中国未来独角兽TOP100榜单》瞄准近两年融资较为活跃或融资…

快速简单制作macOS Ventura系统ISO格式镜像

ISO格式的镜像其实没有什么制作难度,下面苹果系统之家教大家怎么快速简单制作ISO格式的镜像,教程使用到的都是Mac官方的命令。制作好的ISO格式镜像可以用于虚拟机安装或者制作到U盘或者直接在Mac里面打开安装升级。 准备系统镜像 首先下载好macOS 镜像…

上海亚商投顾:沪指延续反弹涨0.67% AI概念股掀跌停潮

指数今日低开高走,沪指午后一度涨超1%,以保险为首的大金融板块拉升,中国平安在一季报驱动下,迎来久违涨停,成交超120亿元。医药股全天强势,何氏眼科、金石亚药、普蕊斯、天宇股份20CM涨停,第一医…

约翰霍普金斯大学诺奖得主涉嫌造假,撤回5篇PNAS论文

2019年,约翰霍普金斯大学的著名基因医学科学家Gregg L. Semenza博士因为“发现细胞如何感知和适应氧气供应”,和另外两名科学家( William Kaelin Jr. and Peter J. Ratcliffe)分享当年的生理医学诺贝尔奖。 近期,Gregg…

SpringBoot整合WebSocket详细教程

预期效果 共开启两个页面&#xff0c;实现一对一聊天。 服务端代码&#xff1a;https://gitee.com/lianaozhe/springboot-websocket.git 代码实现逻辑 服务端 导入相关依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><art…

Silane-PEG-FITC 硅烷聚乙二醇荧光素FITC-PEG-Silane在医疗设备领域有广泛应用,具有很好的生物相容性。

FITC-PEG-Silane&#xff0c;荧光素-聚乙二醇-硅烷 中文名称&#xff1a;荧光素-聚乙二醇-硅烷 英文名称&#xff1a;FITC-PEG-Silane 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 性状 :白色、微黄色粉末或固体&#xff0c;取决于分子量 溶剂&#xff1a;…

新版android studio gradle插件7.4.2.pom一直无法下载问题

android studio同步时候出现org.gradle.api.plugins.UnknownPluginException&#xff0c;Plugin [id: com.android.application, version: 7.4.2] was not found in any of the following sources: pom插件一直无法下载&#xff0c;搞了好几天&#xff0c;简直想砸电脑&#x…

USB转串口芯片CH340与CH341使用问题汇总

USB转串口&#xff1a; CH340C/N/K/E/B/G/T CH341F/B/C/T/A USB转打印口&#xff1a; CH340H/S CH341F/B/A USB转I2C&#xff1a;CH341F/B/C/T/A USB转SPI&#xff1a;CH341F/B/A/H USB转并口/GPIO&#xff1a;CH341F/B/A 芯片供电注意事项 CH340/CH341等 USB 芯片都支…

定时器按键消抖

用到按键就要处理因为机械结构带来的按键抖动问题&#xff0c;也就是按键消抖。 按键消抖原理&#xff1a;在按键按下以后延时一段时间再去读取按键值&#xff0c;如果此时按键值还有效就表示这是一次有效的按键&#xff0c;中间的延时就是消抖的。 但是&#xff0c;延时函数…

《梦幻西游H5》L inux搭建游戏服务器!

西游H5 linux 架设教程 准备工具&#xff1a; Termux&#xff08;安卓&#xff09; Notepad SecureCRT WinSCP 安装宝塔直接运行命令即可。 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.s…

在 Ubuntu 18.04 中配置静态 IP 及灵活切换

Ubuntu 18.04 使用 Netplan 来配置 IP 地址&#xff0c;Netplan 是一个新的命令行网络配置工具。 新的 IP 配置方法不会再用到 /etc/network/interfaces 这个文件&#xff0c;取而代之的是一个 YAML 文件。 默认的 Netplan 配置文件一般在 /etc/netplan 目录下。 查看当前 i…

opencv_04条形码区域分割

基于OpenCV的条形码区域分割 要基于OpenCV实现条形码区域分割&#xff0c;可以按照以下步骤进行&#xff1a; 加载图像&#xff1a;使用OpenCV中的imread函数读取待处理图像。灰度化&#xff1a;使用OpenCV中的cvtColor函数将彩色图像转换为灰度图像。边缘检测&#xff1a;使用…

java-android面试-线程状态

开篇一张图&#xff08;本图来源于网络&#xff09;&#xff0c;余下全靠编&#xff0c;我们正式开始。 一、线程的状态 总共有6种状态&#xff0c;分别如下&#xff1a; 1. 新建状态(New): 线程对象被创建后&#xff0c;就进入了新建状态。例如&#xff0c;Thread thread …

ShareSDK Google平台注册指南

注册开发者账号 访问Firebase&#xff0c;使用Google账号登录 创建项目 登录完成后&#xff0c;点击转到控制台 点击添加项目 输入项目名称&#xff0c;点击继续 根据需要选择是否开启Google Analytics&#xff08;分析&#xff09;&#xff0c;点击继续 选择Google Analytic…

04 【Sass语法介绍-运算】

1.前言 运算是一种通过已知量可能的组合&#xff0c;获得新的量的行为。Sass 中也为我们提供了各种各样的运算&#xff0c;以便我们更好的处理样式代码。本节我们将学习 Sass 中的数字运算、关系运算、除法运算、颜色运算、字符串运算等等… 2.什么是 Sass 运算&#xff1f; …

ArcGIS Pro坐标系统

目录 1 测量学基础 1.1 地球的形状和大小 1.1.1 大地水准面 1.1.2 大地体 1.1.3 地球椭球 2 坐标系统 2.1 地理坐标系 2.2 投影坐标系 2.3 局部坐标系&#xff08;假定坐标系&#xff09; 2.4 高程坐标系 3 地图投影 3.1 投影概念 3.2 投影分类 3.3 投影类型 3.…