gpt4 book ai didi

python - 如何从 python 中的 tzfile 中查找时区名称

转载 作者:行者123 更新时间:2023-12-04 03:09:09 24 4
gpt4 key购买 nike

是否有可能得到这个操作的逆:

import dateutil.tz
tz_ny = dateutil.tz.tz.gettz('America/New_York')
print(type(tz_ny))
print(tz_ny)

这打印:

dateutil.tz.tz.tzfile
tzfile('/usr/share/zoneinfo/America/New_York')

如何在给定 tzfile 类型的 tz_ny 的情况下恢复“America/New_York”?

注意tz_ny.tzname(datetime.datetime(2017,1,1)) 如果日期是夏季,则返回“EST”或“EDT”。

最佳答案

如果您只想要来自 tzfile 的时区名称而不是完整路径,您可以例如做

import dateutil.tz
tz_ny = dateutil.tz.tz.gettz('America/New_York')

tz_ny_zone= "/".join(tz_ny._filename.split('/')[-2:])

print(tz_ny_zone)

让你心动

'America/New_York'

编辑:为了完整起见,因为标题只提到tzfile:除了dateutil还有其他模块可以使用获取 tzfile。一种方法是使用 pytz 模块中的 timezone():

import pytz

tz_ny_pytz = pytz.timezone('America/New_York')

根据您首先使用的模块,tzfile 的类不同

print(type(tz_ny))
print(type(ty_ny_pytz))

打印

<class 'dateutil.tz.tz.tzfile'>
<class 'pytz.tzfile.America/New_York'>

对于 pytz 对象,有一种更直接的方式以人类可读的形式访问时区,即使用 .zone 属性:

print(tz_ny_pytz.zone)

产生

'America/New_York'

关于python - 如何从 python 中的 tzfile 中查找时区名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46690771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com