如何在python中从tzfile中找到时区名称

时间:2017-10-11 14:24:40

标签: python datetime timezone python-dateutil

是否可以得到此操作的反转:

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

如果tz_ny类型为tzfile,如何恢复'America / New_York'?

N.B。 tz_ny.tzname(datetime.datetime(2017,1,1))如果日期是夏天,则返回'EST'或'EDT'。

2 个答案:

答案 0 :(得分:0)

原来有一个受保护的成员变量....

tz_ny._filename

'/usr/share/zoneinfo/America/New_York'

答案 1 :(得分:0)

如果您只需要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'