pymongo 怎么插入北京时间的字符串?
我现在有北京时间的字符串
2023-12-25 10:31:32
通过datetime.datetime.strptime(2023-12-25 10:31:32, "%Y-%m-%d %H:%M:%S")
转换,pymongo插入到mongodb。mongodb默认插入的是utc时间的,怎么才能插入是北京时间的?
回复
1个回答
test
2024-06-20
参考官方文档:https://pymongo.readthedocs.io/en/stable/examples/datetimes.htmlMongoDB会把日期和时间都转换为utc,你可以不转换为datetime类型,直接把时间当作一个字符串保存,或者按照官方文档,保存的时候指定时区,读取的时候传入时区自动转换:
import pytz
# 插入数据时指定时区
pacific = pytz.timezone("Asia/Shanghai")
aware_datetime = pacific.localize(datetime.datetime(2002, 10, 27, 6, 0, 0))
result = db.times.insert_one({"date": aware_datetime})
db.times.find_one()["date"]
from bson.codec_options import CodecOptions
# codec_options 指定时区查询时自动转换时区
aware_times = db.times.with_options(codec_options=CodecOptions(
tz_aware=True,
tzinfo=pytz.timezone('Asia/Shanghai')))
result = aware_times.find_one()
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容