gpt4 book ai didi

python - 如何检查日期时间对象是否使用 pytz 本地化?

转载 作者:IT老高 更新时间:2023-10-28 20:27:17 26 4
gpt4 key购买 nike

我想存储一个具有本地化 UTC 时区的日期时间对象。可以给存储 datetime 对象的方法一个非本地化的 datetime (naive) 对象或已经本地化的对象。如何确定是否需要本地化?

缺少 if 条件的代码:

class MyClass:
def set_date(self, d):
# what do i check here?
# if(d.tzinfo):
self.date = d.astimezone(pytz.utc)
# else:
self.date = pytz.utc.localize(d)

最佳答案

How do I determine if localization is needed?

来自 datetime docs :

  • 一个日期时间对象 d 知道 iff:

    d.tzinfo is not None and d.tzinfo.utcoffset(d) is not None
  • d 是幼稚的 iff:

    d.tzinfo is None or d.tzinfo.utcoffset(d) is None

虽然如果 d 是表示 UTC 时区时间的日期时间对象,那么您可以在这两种情况下使用:

self.date = d.replace(tzinfo=pytz.utc)

无论 d 是时区感知还是幼稚,它都能正常工作。

注意:don't use datetime.replace() method with a timezone with a non-fixed utc offset (可以将其与 UTC 时区一起使用,否则您应该使用 tz.localize() 方法)。

关于python - 如何检查日期时间对象是否使用 pytz 本地化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802108/

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