快速解决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中的列表知识点汇总
Apr 14 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
Python 闭包的使用方法
Sep 07 Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
Python3 sys.argv[ ]用法详解
Oct 24 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
【超详细】八大排序算法的各项比较以及各自特点
Mar 31 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
Python 中 Shutil 模块详情
Nov 11 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
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
js 文件引入实现代码
2010/04/23 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
python 布尔操作实现代码
2013/03/23 Python
Python3中的2to3转换工具使用示例
2015/06/12 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
python psutil库安装教程
2018/03/19 Python
python使用folium库绘制地图点击框
2018/09/21 Python
python通过实例讲解反射机制
2019/10/17 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
2014元旦晚会策划方案
2014/02/19 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
企业负责人任命书
2014/06/05 职场文书
奖励通知
2015/04/22 职场文书
道士塔读书笔记
2015/06/30 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
企业安全生产检查制度
2015/08/06 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
Java数据结构之堆(优先队列)
2022/05/20 Java/Android