如何确定DST在Python中某个日期是否有效?

时间:2019-03-22 20:12:49

标签: python datetime timezone dst

我有以下数据:该地点的地理坐标和当地日期和时间(不一定是当前的)可能指向许多年前的某个时刻。我还可能会在当前时间,当前时间(但不一定对感兴趣的日期和时间正确)设置非DST时区。 我想了解使用Python在当地时间DST是否在该位置生效。任何想法如何做到这一点?我正在阅读有关pytz软件包的信息,但找不到适合它的任何东西。

2 个答案:

答案 0 :(得分:2)

我假设您已经解决了时区本身-如果没有,那么这个问题中确实存在两个问题:

  • 从坐标中找到时区ID
  • 确定DST是否在任意日期/时间的时区中生效

我对Python不太熟悉,但是给定this documentation,我相信您想使用tzinfo.dst(dt)函数,该函数将在标准时间内返回timedelta(0),并且它与标准偏移量之差墙在DST中偏移。您输入要查找其偏移量的datetime

请注意,在pytz库中,您可以指定一个附加的is_dst参数来解决歧义,其中给定的本地时间由于“后退”过渡而出现两次。

答案 1 :(得分:2)

您将需要How to get a time zone from a location using latitude and longitude coordinates?中的一种解决方案来标识给定坐标所属的时区。

一旦有了时区,就可以使用Is a specific timezone using DST right now?处的解决方案来确定DST在给定时区和日期/时间的情况下是否有效。