现在是使用DST的特定时区吗?

时间:2013-06-18 15:46:34

标签: python time timezone pytz

如何让我的python脚本检查现在使用DST存储在变量中的特定时区? 我的服务器设置为UTC。 所以我有 比如说

zonename = Pacific/Wallis

我想运行查询,了解它是否正在使用DST,并将回复返回为true为假。

1 个答案:

答案 0 :(得分:17)

from pytz import timezone
from datetime import datetime

zonename = "Pacific/Wallis"
now = datetime.now(tz=timezone(zonename))
dst_timedelta = now.dst()
### dst_timedelta is offset to the winter time, 
### thus timedelta(0) for winter time and timedelta(0, 3600) for DST; 
### it returns None if timezone is not set

print "DST" if dst_timedelta else "no DST"

替代方案是使用:

now.timetuple().tm_isdst 

其中一个可以包含3个值中的一个:{DAR}为0,DST为1,未设置时区为-1