datetime.now()
似乎没有附加时区信息。我想要 UTC 的当前时间。我该怎么办?
>>> from datetime import datetime
>>> y = datetime.now()
>>> y
datetime.datetime(2014, 3, 11, 11, 18, 33, 598489)
起初我认为 datetime.utcnow()
是显而易见的解决方案,但后来我发现它也没有附加时区信息(WTF?)。
>>> from datetime import datetime
>>> y = datetime.utcnow()
>>> y
datetime.datetime(2014, 3, 11, 16, 19, 40, 238810)
最佳答案
在 Python 3 中:
datetime.now(timezone.utc)
在 Python 2.x 中没有时区对象,但您可以编写自己的:
try:
from datetime import timezone
except ImportError:
from datetime import tzinfo, timedelta
class timezone(tzinfo):
def __init__(self, utcoffset, name=None):
self._utcoffset = utcoffset
self._name = name
def utcoffset(self, dt):
return self._utcoffset
def tzname(self, dt):
return self._name
def dst(self, dt):
return timedelta(0)
timezone.utc = timezone(timedelta(0), 'UTC')
然后您可以像在 Python 3 中一样执行 datetime.now(timezone.utc)
。
关于Python - 在 UTC 中获取时区感知当前时间的最简单和最连贯的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22329962/