Python Mongo ObjectID:“;can';t比较初始偏移量和感知偏移量的日期时间”;即使是pytz
我试图用时间戳美化ObjectID,但它总是给我一个类型错误:Python Mongo ObjectID:“;can';t比较初始偏移量和感知偏移量的日期时间”;即使是pytz,python,mongodb,datetime,timezone,pymongo,Python,Mongodb,Datetime,Timezone,Pymongo,我试图用时间戳美化ObjectID,但它总是给我一个类型错误: TypeError: can't compare offset-naive and offset-aware datetimes 即使在我尝试使用Pytz将时间戳转换为时区UTC日期之后。这就是我正在尝试的代码 import datetime import pytz import pretty # ... song = db.songs.find_one( { 'GUID' : 0123 } ) dateTimeUnaware
TypeError: can't compare offset-naive and offset-aware datetimes
即使在我尝试使用Pytz将时间戳转换为时区UTC日期之后。这就是我正在尝试的代码
import datetime
import pytz
import pretty
# ...
song = db.songs.find_one( { 'GUID' : 0123 } )
dateTimeUnaware = song['_id'].generation_time.now(pytz.utc)
prettyDate = pretty.date( dateTimeUnaware )
为什么这总是给我类型错误?pytz函数不应该使其成为时区不可知的吗?我不是py的专家,但您的代码不会将时区感知日期转换为时区不感知日期 它只需要utc时区中的当前日期(使用
now
)(因此可以识别时区)
您可以使用以下方法将tz-aware日期时间转换为tz-aware日期时间:
your_datetime_var.replace(tzinfo=None)
就你而言:
song['_id'].generation_time.replace(tzinfo=None)
请注意,在本例中“天真”意味着所有与日期和时间相关的字段都将具有与原始字段相同的值,但有关时区和DST的信息将丢失
顺便说一句,py pretty看起来没有维护(上一次上传到pypi是在2010年,源代码无法访问),所以寻找替代品可能是一个好主意你有一个时区感知的日期时间它不是不可知的。。。拥有pytz.utc会给它一个utc时区。删除它应该可以解决您的问题。generation\u time.now()