使用pymongo将MongoDB返回的timestamp转换为2021/08/22类标准日期
解决方案
你拿到的{'$date': 1629203596651}结构中,$date对应的值是毫秒级Unix时间戳,Python内置datetime模块默认处理秒级时间戳,只要做个单位转换再格式化即可,完整实现代码如下:
from datetime import datetime # 你已拿到的timestamp对象 timestamp = result.get('timestamp') # 提取毫秒时间戳 ms_timestamp = timestamp['$date'] # 转换为datetime对象,用utcfromtimestamp得到UTC时间,替换为fromtimestamp则得到本地时区时间 dt = datetime.utcfromtimestamp(ms_timestamp / 1000) # 格式化为YYYY/MM/DD格式 formatted_date = dt.strftime('%Y/%m/%d')
如果需要避免每次手动处理$date结构,可以在初始化MongoClient时开启自动类型转换,pymongo会直接把MongoDB的Date类型映射为Python的datetime对象:
from pymongo import MongoClient # 不需要时区感知的话可以省略tz_aware参数 client = MongoClient('mongodb://你的连接地址', tz_aware=True)
内容的提问来源于stack exchange,提问作者thecrowgg
相关产品推荐
相关产品推荐

