快速解决pymongo操作mongodb的时区问题


Posted in Python onDecember 05, 2020

如下所示:

1、mongodb的日期时间格式是UTC时间,中国时间 = UTC时间 +8

2、可在pymongo客户端加入时区以解决此问题:

import pytz
from pymongo import MongoClient
from datetime import datetime
tzinfo = pytz.timezone('Asia/Shanghai')

client = MongoClient(
  host="127.0.0.1",
  port=27017,
  username="root",
  password="123456",
  authSource="admin", # 在哪个数据库进行身份验证,默认是admin
  tz_aware=True, # 设置为True
  tzinfo=tzinfo  # 加入时区信息
)
db = client["test"]
collection = db["mytest"]

datetime.now() # 2020-04-11 10:42:42.452433
ret = collection.insert_one({
  "name": "测试5",
  "create_time": tzinfo.localize(datetime.now()) 
})
# create_time不能使用datetime.now()获取时间,
# 应该使用 datetime.utcnow()或 tzinfo.localize(datetime.now())或 datetime.now(tz=tzinfo)
# 这样读取数据时日期时间才是标准的中国时间
res = collection.find_one({"name": "测试5"})
print(res)
# {'_id': ObjectId('5e912ea261d252f76350728a'), 'name': '测试5', 'create_time': datetime.datetime(2020, 4, 11, 10, 42, 42, 452000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)}

# 下面测试直接使用datetime.now()的情形
datetime.now() # 2020-04-11 10:49:41.899445
collection.insert_one({
  "name": "测试6",
  "create_time": datetime.now()
})
res = collection.find_one({"name": "测试6"})
# {'_id': ObjectId('5e913045143015041d776d08'), 'name': '测试6', 'create_time': datetime.datetime(2020, 4, 11, 18, 49, 41, 899000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)}
# 可以看到时间+8小时

补充知识:pymongo 按照时间查询

我就废话不多说了,大家还是直接看代码吧~

from pymongo import MongoClient 
client=MongoClient('localhost',27017)
db=client.adv.message
from datetime import datetime
import pandas as pd
#db.insert_one({'player_id':js2['player_id'],'message':js2['message'],
#        'label':label,'predict_time':datetime.datetime.now()})

#按照时间查询
q1={"predict_time":{"$gte" :datetime(2019,9,25) ,"$lte": datetime(2019,9,28)}}  
l1=list(db.find(q1))

#l1=list(db.find({}))
df=pd.DataFrame(l1)

以上这篇快速解决pymongo操作mongodb的时区问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python多线程和队列操作实例
Jun 21 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
Jan 04 Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
Django之腾讯云短信的实现
Jun 12 Python
Python实现七个基本算法的实例代码
Oct 08 Python
python os.rename实例用法详解
Dec 06 Python
python 如何读、写、解析CSV文件
Mar 03 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 Python
pymongo insert_many 批量插入的实例
Dec 05 #Python
python 写一个文件分发小程序
Dec 05 #Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 #Python
用python对oracle进行简单性能测试
Dec 05 #Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 #Python
python自动从arxiv下载paper的示例代码
Dec 05 #Python
python使用dlib进行人脸检测和关键点的示例
Dec 05 #Python
You might like
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
srcElement表格样式
2006/09/03 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
Python json模块使用实例
2015/04/11 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
品管员岗位职责
2013/11/10 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
主持人大赛开场白
2015/05/29 职场文书
教师节联欢会主持词
2015/07/04 职场文书
食堂卫生管理制度
2015/08/04 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
Python基础之元编程知识总结
2021/05/23 Python
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle