chi*_*org 57 python timezone datetime pytz
我想存储具有本地化UTC时区的日期时间对象.存储datetime对象的方法可以被赋予非本地化的日期时间(天真)对象或已经本地化的对象.如何确定是否需要本地化?
如果条件丢失的代码:
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)
Run Code Online (Sandbox Code Playgroud)
jfs*_*jfs 91
如何确定是否需要本地化?
来自datetime
docs:
日期时间对象d
知道iff:
d.tzinfo is not None and d.tzinfo.utcoffset(d) is not None
Run Code Online (Sandbox Code Playgroud)d
是天真的iff:
d.tzinfo is None or d.tzinfo.utcoffset(d) is None
Run Code Online (Sandbox Code Playgroud)虽然if d
是一个表示UTC时区时间的日期时间对象,但您可以在两种情况下使用:
self.date = d.replace(tzinfo=pytz.utc)
Run Code Online (Sandbox Code Playgroud)
它无论d
是时区感知还是天真都有效.
注意:不要使用datetime.replace()
带有非固定utc偏移的时区的方法(可以将它与UTC时区一起使用,否则你应该使用tz.localize()
方法).
Céd*_*ien 23
如果要检查日期时间对象'd'是否已本地化,请检查d.tzinfo,如果它是None,则不进行本地化.
kbl*_*lst 10
这是一个包含最佳答案的函数。
def tz_aware(dt):
return dt.tzinfo is not None and dt.tzinfo.utcoffset(dt) is not None
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28313 次 |
最近记录: |