2011-09-10 10 views

Odpowiedz

12

Wygląda na to, że nie jest oficjalnie obsługiwany. Jednak można grzebać w wewnętrznych o DstTzInfo obiektu i dostać go stamtąd:

>>> from pytz import timezone 
>>> tz = timezone('Europe/London') 
>>> tz._utc_transition_times 
[datetime.datetime(1, 1, 1, 0, 0), datetime.datetime(1916, 5, 21, 2, 0), 
... 
datetime.datetime(2036, 3, 30, 1, 0), datetime.datetime(2036, 10, 26, 1, 0), 
datetime.datetime(2037, 3, 29, 1, 0), datetime.datetime(2037, 10, 25, 1, 0)] 

Każda pozycja odpowiada wpisu _transition_info:

>>> tz._transition_info 
[(datetime.timedelta(0), datetime.timedelta(0), 'GMT'), 
(datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), 'BST'), 
... 
(datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), 'BST'), 
(datetime.timedelta(0), datetime.timedelta(0), 'GMT'), 
(datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), 'BST'), 
(datetime.timedelta(0), datetime.timedelta(0), 'GMT')] 

i źródło mówi nam, co to znaczy:

_utc_transition_times = None # Sorted list of DST transition times in UTC 
_transition_info = None # [(utcoffset, dstoffset, tzname)] corresponding 
         # to _utc_transition_times entries 

Oczywiście jest to zależne od implementacji i prawdopodobnie zależy Ci na konkretnych wersjach pytzów, o których wiadomo, że działają.

+0

Nie jestem pewien, co masz na myśli przez to ostatnie zdanie. Pytz ma rewizje jak wszystko inne, ale czy są/były faktycznie różne ich implementacje? –

+0

Kto wie? Masz dostęp do pola, które zaczyna się od podkreślenia, które nie jest częścią udokumentowanego interfejsu API. Autorzy pytzów mogą w każdej chwili go zmienić. – Thomas

Powiązane problemy