Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Mongo ObjectID:“;can';t比较初始偏移量和感知偏移量的日期时间”;即使是pytz_Python_Mongodb_Datetime_Timezone_Pymongo - Fatal编程技术网

Python Mongo ObjectID:“;can';t比较初始偏移量和感知偏移量的日期时间”;即使是pytz

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

我试图用时间戳美化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 = 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()