2011-09-10 26 views

回答

12

它似乎沒有正式支持。但是,您可以在DstTzInfo對象內部從那裏戳,並得到它:

>>> 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)] 

每個條目對應於_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')] 

和源告訴我們,這些意味着什麼:

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

當然,這是依賴於實現的,您可能想要依賴已知工作的特定版本的pytz。

+0

不確定你最後一句話的含義。 Pytz的修改與其他任何東西一樣,但是/它們實際上有不同的實現嗎? –

+0

誰知道?您正在訪問以下劃線開頭的字段,該字段不是記錄的API的一部分。 Pytz作者可能隨時改變它。 – Thomas