快速解决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查找第k小元素代码分享
Dec 18 Python
python回溯法实现数组全排列输出实例分析
Mar 17 Python
Python运用于数据分析的简单教程
Mar 27 Python
使用Python对Excel进行读写操作
Mar 30 Python
python实现感知器
Dec 19 Python
python判断设备是否联网的方法
Jun 29 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
使用Python的turtle模块画国旗
Sep 24 Python
Python生态圈图像格式转换问题(推荐)
Dec 02 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
通过实例解析Python文件操作实现步骤
Sep 21 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
风格模板初级不完全修改教程
2006/10/09 PHP
模仿OSO的论坛(四)
2006/10/09 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
python交互界面的退出方法
2019/02/16 Python
python tkinter canvas使用实例
2019/11/04 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
毕业生自荐书
2013/12/18 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
网络管理员岗位职责
2014/03/17 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android