[英]How can I convince DateTime object (initialized with pytz timezone) to get me a timezone code recognized by pytz? (Python)
import pytz
import datetime
timezone = pytz.timezone('Poland')
date = timezone.localize(datetime.datetime(2018, 10, 1))
pytz.timezone(date.tzname())
不幸的是在Python 3.5.2中,它崩溃了
Traceback (most recent call last):
File "timezones.py", line 6, in <module>
pytz.timezone(date.tzname())
File "/usr/local/lib/python3.5/dist-packages/pytz/__init__.py", line 178, in timezone
raise UnknownTimeZoneError(zone)
pytz.exceptions.UnknownTimeZoneError: 'CEST'
在程序的一部分中,创建时区感知时间对象。 在其他部分,有必要找回时区标识符。
为避免XY问题:我正在使用skyfield
库计算日出和日落数据。 为此,我需要将时区作为参数之一。
根据我在https://docs.python.org/3/library/datetime.html看到的信息,存在一个timezone
但用于设置时区,但无法获取。
TZ数据库时区名称存储为pytz.timezone()
返回的区域对象的zone
属性:
>>> import pytz
>>> import datetime
>>>
>>> timezone = pytz.timezone('Poland')
>>> date = timezone.localize(datetime.datetime(2018, 10, 1))
>>> date.tzinfo.zone
'Poland'
如您所见,区域对象本身在调用localize()
之后可以作为date.tzinfo
使用,因此如果您需要它,则可以直接使用它,而不pytz.timezone()
名称传递回pytz.timezone()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.