我如何让我的python脚本检查是否一个特定的时区,是存储在一个变量使用DST现在?我的服务器设置为UTC。所以我有比如
zonename = Pacific/Wallis
我想运行查询,如果它正在使用DST现在,并有回复返回为true或false。
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个值中的一个:0
表示没有夏令时,1
表示夏令时,-1
表示没有设置时区。
Python 3.9添加了zoneinfo模块来取代pytz。这是针对现代Python版本的新更新版本。
from zoneinfo import ZoneInfo
from datetime import datetime
bool(datetime.now(tz=ZoneInfo("America/Chicago")).dst())