如何找出DST在Python中的某些日期是否有效?

问题描述 投票:1回答:2

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

python datetime timezone dst
2个回答
2
投票

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

获得时区后,您可以使用Is a specific timezone using DST right now?中的解决方案,根据时区和日期/时间确定DST是否有效。


2
投票

我假设你已经解决了时区问题 - 如果没有,这个问题确实存在两个问题:

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

我对Python并不是很熟悉,但考虑到this documentation我相信你想要tzinfo.dst(dt)函数,它将在标准时间内返回timedelta(0),以及标准偏移量和DST中的墙壁偏移之间的差异。你传递datetime你想找到的偏移量。

请注意,在pytz库中,还有一个额外的is_dst参数,您可以指定该参数来解决歧义,其中给定的本地时间由于“后退”转换而发生两次。

© www.soinside.com 2019 - 2024. All rights reserved.