快速解决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中操作列表之list.extend()方法的使用
May 20 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
Python新手们容易犯的几个错误总结
Apr 01 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
django框架ModelForm组件用法详解
Dec 11 Python
Python 创建守护进程的示例
Sep 29 Python
基于Python实现粒子滤波效果
Dec 01 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
python获取android设备的GPS信息脚本分享
2015/03/06 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
python模拟实现分发扑克牌
2020/04/22 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
酒店爱岗敬业演讲稿
2014/09/02 职场文书
行政文员岗位职责
2015/02/04 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
MySQL优化之慢日志查询
2022/06/10 MySQL