快速解决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绘制MySQL数据图实现数据可视化
Mar 30 Python
python超简单解决约瑟夫环问题
May 12 Python
在Python的Django框架中为代码添加注释的方法
Jul 16 Python
Python中pygame安装方法图文详解
Nov 11 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
python使用Plotly绘图工具绘制散点图、线形图
Apr 02 Python
将Python字符串生成PDF的实例代码详解
May 17 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
Mar 13 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
Python中内建模块collections如何使用
May 27 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
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
Python导出DBF文件到Excel的方法
2015/07/25 Python
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
在Python中COM口的调用方法
2019/07/03 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
如何利用python进行时间序列分析
2020/08/04 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
户外宣传策划方案
2014/05/25 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
先进班集体事迹材料
2014/12/25 职场文书