如何在Python中获取任何时区的当前偏移量
我需要获取Python中任何时区的当前偏移量。目前,我正在使用如何在Python中获取任何时区的当前偏移量,python,datetime,timezone,pytz,datetimeoffset,Python,Datetime,Timezone,Pytz,Datetimeoffset,我需要获取Python中任何时区的当前偏移量。目前,我正在使用pytz库,并使用此代码获得偏移量: import datetime import pytz timezone = 'America/Punta_Arenas' datetime.datetime.now(pytz.timezone(timezone)).utcoffset().total_seconds()/60/60 //prints -3 timezone = 'America/Santiago' datetime.dateti
pytz
库,并使用此代码获得偏移量:
import datetime
import pytz
timezone = 'America/Punta_Arenas'
datetime.datetime.now(pytz.timezone(timezone)).utcoffset().total_seconds()/60/60
//prints -3
timezone = 'America/Santiago'
datetime.datetime.now(pytz.timezone(timezone)).utcoffset().total_seconds()/60/60
//prints -4
以“美国/圣地亚哥”为例:今年(2018年),DST设定为5月13日,而2015年全年都在观测DST,2014年设定为4月27日。因此,将日期和年份分开,偏移量为“-3”或“-4”
我假设前面的代码不知道每个国家关于DST的政治决定,并且可能会根据固定的DST日期或诸如此类的内容获得偏移量。既然我不知道datetime
和pytz
的具体细节,我宁愿问,这个假设正确吗
如果它不知道,我如何获得任何时区的实际当前偏移量
我假设前面的代码不知道每个国家关于DST的政治决定,并且可能会根据固定的DST日期或诸如此类的内容获得偏移量
你的假设是错误的。时区的政治变化通过网络记录和分发。这些更改随后在数百个不同的库、平台和操作系统中实现,比如您提到的pytz库
您描述的对America/Santiago
的更改反映在中,并在中实现。如果您使用的是pytz 2016.3或更高版本,那么您的代码会意识到这一变化
Pyz很好,但是你可能想考虑使用。或者更高的数据
我假设前面的代码不知道每个国家关于DST的政治决定,并且可能会根据固定的DST日期或诸如此类的内容获得偏移量 你的假设是错误的。时区的政治变化通过网络记录和分发。这些更改随后在数百个不同的库、平台和操作系统中实现,比如您提到的pytz库 您描述的对America/Santiago
的更改反映在中,并在中实现。如果您使用的是pytz 2016.3或更高版本,那么您的代码会意识到这一变化
Pyz很好,但是你可能想考虑使用。或者更高的数据。
不太多:@stephernauch你说不太多是什么意思?“没有那么多”关于所述代码的意识?你读过链接吗?@Stephernauch是的,这是一个可下载的数据库。我在寻找一种API类型的系统。pytz使用该数据库。不太多:@stephernauch你说不太多是什么意思?“没有那么多”关于所述代码的意识?你读过链接吗?@Stephernauch是的,这是一个可下载的数据库。我正在寻找一种API类型的系统。pytz使用该数据库。谢谢你的完整回答,@Matt Johnson。如果我使用PyTZ或dateutil,如果TZ数据库发生更改(例如:某个国家决定不实施某些DST更改),我必须更新它们,对吗?确实如此。时区变化不规则且不可预测。掌握最新信息是至关重要的。另请参见:特别是底部标题为“对软件开发人员的建议”的部分。感谢您提供了非常完整的答案,@Matt Johnson。如果我使用PyTZ或dateutil,如果TZ数据库发生更改(例如:某个国家决定不实施某些DST更改),我必须更新它们,对吗?确实如此。时区变化不规则且不可预测。掌握最新信息是至关重要的。另请参见:特别是底部标题为“对软件开发人员的建议”的部分。