delorean
文档显示了这种获取给定时区当前时间的 方法datetime
:
from datetime import datetime
from pytz import timezone
EST = "US/Eastern"
UTC = "UTC"
d = datetime.utcnow()
utc = timezone(UTC)
est = timezone(EST)
d = utc.localize(d)
d = est.normalize(EST)
并将其与基于 delorian 的代码进行比较:
from delorean import Delorean
EST = "US/Eastern"
d = Delorean(timezone=EST)
我相信这个datetime
例子应该写成:
from datetime import datetime
import pytz
eastern_timezone = pytz.timezone("US/Eastern")
d = datetime.now(eastern_timezone)
那更简洁。
是否存在最后一个代码示例失败而第一个代码示例继续工作的情况?
更新: 当前示例:
from datetime import datetime
import pytz
d = datetime.utcnow()
d = pytz.utc.localize(d)
est = pytz.timezone('US/Eastern')
d = est.normalize(d)
return d
那还是太冗长了。
问题仍然存在:您是否需要通过 utc 进行显式往返,tz.normalize()
或者您可以使用它datetime.now(tz)
来代替吗?