2013-06-18 18 views
9

W jaki sposób uzyskać skrypt Pythona, aby sprawdzić, czy konkretna strefa czasowa, która jest przechowywana w zmiennej za pomocą DST teraz? Mój serwer jest ustawiony na UTC. Więc mam powiedzieć na przykładCzy konkretna strefa czasowa używa teraz DST?

zonename = Pacific/Wallis 

Chcę uruchomić zapytanie o to, czy korzysta teraz DST i mieć odpowiedź wróci jako true false.

Odpowiedz

13
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" 

Alternatywą jest użycie:

now.timetuple().tm_isdst 

który może mieć jedną z 3 wartości: 0 na żadnym DST 1 dla DST i -1 dla strefy czasowej nie jest ustawiona.

+0

moje (niezależne) rozwiązanie [zduplikowanego pytania] (http://stackoverflow.com/q/19774709/4279) jest niesamowicie podobne (w tym nazwy zmiennych). – jfs

+0

@JFSebastian: * "Powinien istnieć jeden - a najlepiej tylko jeden - czysty sposób na to." * [PEP-20 aka The Zen of Python] (https://www.python.org/dev/peps/ pep-0020 /) ;-) – vartec

+2

dlatego właśnie uwielbiam Pythona :) – jfs

Powiązane problemy