我想要存储一个带有本地化的UTC时区的日期时间对象。存储日期时间对象的方法可以接收非本地化的日期时间(无时区)对象或者已经本地化的对象。我如何确定是否需要进行本地化?
缺少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)
astimezone
方法,它会假定使用系统时区。 - Mitardef is_naive(self): return self.tzinfo is None or self.tzinfo.utcoffset(self) is None
https://devguide.python.org/ - jfstzinfo
上的utcoffset
方法(与datetime
不同)需要一个日期时间参数,因此答案中的代码是正确的。 - JKillian