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
如何确定是否需要本地化?
来自datetimedocs:
日期时间对象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 次 |
| 最近记录: |