Jak mogę przekonwertować strefy czasowe Windows na strefy czasowe pytz?
W środowisku python systemu Windows mogę uzyskać taką strefę czasową, ale nie można jej używać z pytzem:
>>> import win32timezone
>>> win32timezone.TimeZoneInfo.local()
TimeZoneInfo(u'US Mountain Standard Time', True)
>>> win32timezone.TimeZoneInfo.local().timeZoneName
u'US Mountain Standard Time'
>>> tz = pytz.timezone(win32timezone.TimeZoneInfo.local().timeZoneName)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\pytz\__init__.py", line 185, in timezone
raise UnknownTimeZoneError(zone)
pytz.exceptions.UnknownTimeZoneError: 'US Mountain Standard Time'
Jaki jest dobry sposób, aby przekonwertować dane wyjściowe na nazwę strefy czasowej pytz.timezone ()?
Oto odpowiedź za pomocątzlocal
(dzięki Mattowi):
>>> from tzlocal.win32 import get_localzone_name
>>> get_localzone_name()
'America/Phoenix'
>>> tz = pytz.timezone(get_localzone_name())
>>> tz
<DstTzInfo 'America/Phoenix' MST-1 day, 17:00:00 STD>