2011-09-10 17 views

Trả lời

12

Dường như nó không được hỗ trợ chính thức. Tuy nhiên, bạn có thể chọc vào bên trong của một đối tượng DstTzInfo và làm cho nó từ đó:

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

Mỗi mục tương ứng với một mục trong _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')] 

Và nguồn cho chúng ta biết những gì này có ý nghĩa:

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

Tất nhiên, điều này phụ thuộc vào triển khai thực hiện và bạn có thể muốn phụ thuộc vào phiên bản cụ thể của pytz được biết là hoạt động.

+0

Không chắc chắn ý của bạn là gì trong câu cuối cùng đó. Pytz có các bản sửa đổi giống như bất kỳ thứ gì khác, nhưng có/thực sự có những triển khai khác nhau không? –

+0

Ai biết được? Bạn đang truy cập một trường bắt đầu bằng dấu gạch dưới, không phải là một phần của API được ghi lại. Các tác giả pytz có thể thay đổi nó bất cứ lúc nào. – Thomas

Các vấn đề liên quan