python - 如何计算python中两个时区之间的时差?

标签 python datetime timezone

如何计算 Python 中两个时区之间的时差?也就是说,我不想比较 TZ 感知的 datetime 对象并获得 timedelta;我想比较两个 TimeZone 对象并获得一个 offset_hoursdatetime 库中没有任何内容可以处理这个问题,pytz 也没有。 .

最佳答案

这是一个使用 Python 库 Pytz 的解决方案,它解决了夏令时结束时时间不明确的问题。


from pytz import timezone
import pandas as pd

def tz_diff(date, tz1, tz2):
    '''
    Returns the difference in hours between timezone1 and timezone2
    for a given date.
    '''
    date = pd.to_datetime(date)
    return (tz1.localize(date) - 
            tz2.localize(date).astimezone(tz1))\
            .seconds/3600

以下示例分别计算了 1 月 1 日和 6 月 1 日 UTC 时间与澳大利亚时间之间的时差。请注意如何考虑夏令时。

utc = timezone('UTC')
aus = timezone('Australia/Sydney')

tz_diff('2017-01-01', utc, aus)

# 11.0

tz_diff('2017-06-01', utc, aus)

# 10.0

谢谢

关于python - 如何计算python中两个时区之间的时差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46736529/

相关文章:

Java 日历在 MS Windows 中为 `America/Santiago` 区域返回错误的时间

PostgreSQL UTC 至 英国本地时间

两个数据集的 python 生成器表达式

Python 方法 dir() 不返回所有属性/方法

python - App Engine Python 模块基本和手动缩放不起作用

python - 当您使用 thumbnail() 然后 crop() 时,PIL 是否会在图像的底部边缘创建伪影?如果是这样,您的解决方法是什么?

c# - .Net - 一天中的时间

c# - C# 中的日期时间分析器错误

c# - 计算日期范围内包含的日期数

python - 将具有多个时区的 pandas 列转换为单个时区