参考官方文档:[https://pymongo.readthedocs.io/en/stable/examples/datetimes.html](https://link.segmentfault.com/?enc=6YcRCPz7AlLqacHdU%2Byu2Q%3D%3D.%2FbkMjZXNpOr8y7%2FNF8lPEEDfAPbCFHJbViba2Se85lIPI0L5wNPARSm7dbytIPzsFKZbDlNWKsgop3d%2FK2k%2B4Fi4V1ClWEoEgMXIFzHTwZk%3D) MongoDB会把日期和时间都转换为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()