gpt4 book ai didi

python - Mongo 对象 ID : "can' t compare offset-naive and offset-aware datetimes"even with pytz

转载 作者:IT老高 更新时间:2023-10-28 13:18:15 25 4
gpt4 key购买 nike

我正在尝试使用 py-pretty 美化 ObjectIDs 时间戳但它一直给我一个 TypeError:

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-pretty 专家,但您的代码不会将时区感知日期转换为时区不感知日期。

它只需要 utc 时区中的当前日期(使用 now)(因此时区感知)。

您可以使用以下方法天真地将 tz-aware 日期时间转换为 tz-unware 日期时间:

your_datetime_var.replace(tzinfo=None)

在你的情况下:

song['_id'].generation_time.replace(tzinfo=None)

请注意,在这种情况下,“天真”意味着所有与日期和时间相关的字段都将具有与原始字段相同的值,但有关时区和 DST 的信息将会丢失。

顺便说一句,py-pretty 似乎无人维护(上次上传到 pypi 是在 2010 年,源代码无法访问)所以寻找替代品可能是个好主意

关于python - Mongo 对象 ID : "can' t compare offset-naive and offset-aware datetimes"even with pytz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12968565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com