【发布时间】:2013-11-15 11:37:04
【问题描述】:
我们有一个在 GMT 时间运行的服务器。我需要编写一个 Python 脚本来确定它当前(此时此刻)是否是加利福尼亚州洛杉矶的夏令时(DST)。我怎样才能做到这一点?我看了一下 pytz 和 time ,但我无法弄清楚。我意识到我可以创建一些逻辑,例如将 LA 的当前时间与 GMT 时间进行比较,但如果我可以使用标准库代替它会更简洁。
谢谢
编辑:这是我设置时区的一些示例代码:
from pytz import timezone
import pytz
from datetime import datetime, timedelta
tz = timezone('America/Los_Angeles')
// Instantiate a datetime object using tz?
编辑:这是一个可以工作的代码。它并不优雅,这就是为什么我要问是否有图书馆或为此而设计的东西。可能像 is_dst() 函数。
utc = timezone("UTC")
now = utc.localize(datetime.utcnow())
los_angeles_tz = timezone('America/Los_Angeles')
los_angeles_time = now.astimezone(los_angeles_tz)
delta = los_angeles_time.utcoffset()
dstDelta = timedelta(hours=-8)
is_dst = (delta == dstDelta)
【问题讨论】:
-
@Marcin 公平地说 - 它不是 Python 库中最友好的尝试解决方案的区域。因此,虽然从技术上讲是题外话,但这并不是一个不合理的问题。
-
@JonClements 也许是这样,但很高兴看到一些证明 OP 超越了打开文档并说“天哪,这看起来很难,也许 SO 上的某个人可以解决我的问题”。
标签: python time timezone dst pytz