快速解决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 相关文章推荐
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
对python中return和print的一些理解
Aug 18 Python
itchat接口使用示例
Oct 23 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
python版大富翁源代码分享
Nov 19 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
Python实现分数序列求和
Feb 25 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 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实现微信支付之现金红包
2018/05/30 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
input 高级限制级用法
2009/03/26 Javascript
javascript 继承实现方法
2009/08/26 Javascript
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
Vue.js实现大转盘抽奖总结及实现思路
2019/10/09 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
python中selenium库的基本使用详解
2020/07/31 Python
如何基于Python按行合并两个txt
2020/11/03 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
消防应急演练方案
2014/02/12 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
校园新闻稿范文
2015/07/18 职场文书
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android