快速解决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对IP进行转换的一些操作技巧小结
Nov 09 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
解决python selenium3启动不了firefox的问题
Oct 13 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
python引用(import)某个模块提示没找到对应模块的解决方法
Jan 19 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
python爬虫selenium模块详解
Mar 30 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
php对象工厂类完整示例
2018/08/09 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
Python面向对象特殊成员
2017/04/24 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
深入浅析python的第三方库pandas
2020/02/13 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
如何在存储过程中使用Loop
2016/01/05 面试题
自考毕业生自我鉴定
2013/11/04 职场文书
班主任先进事迹材料
2014/12/17 职场文书
分享python函数常见关键字
2022/04/26 Python