快速解决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中lambda的用法及其与def的区别解析
Jul 28 Python
Python最长公共子串算法实例
Mar 07 Python
用Python展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
python实现基于SVM手写数字识别功能
May 27 Python
解决python3 网络请求路径包含中文的问题
May 10 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
Oct 22 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
python如何制作英文字典
Jun 25 Python
python用match()函数爬数据方法详解
Jul 23 Python
python3 批量获取对应端口服务的实例
Jul 25 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+oracle 分页类
2006/10/09 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
php for 循环使用的简单实例
2016/06/02 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
javascript Array.remove() 数组删除
2009/08/06 Javascript
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
常用DOM整理
2015/06/16 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
python如何修改装饰器中参数
2018/03/20 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
公司道歉信范文
2014/01/09 职场文书
心理健康课教学反思
2014/02/13 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
医院志愿者活动总结
2015/05/06 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript