作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有可能得到这个操作的逆:
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/
我是一名优秀的程序员,十分优秀!