【问题标题】:How do I handle a series of timestamps from different timezones in Python?如何在 Python 中处理来自不同时区的一系列时间戳?
【发布时间】:2012-07-22 01:31:54
【问题描述】:

我有一个大型数据集,其中包含来自不同时区的时间戳,可以追溯到正好一年。每个条目都包含一个时间戳和当前从 UTC 中删除时间戳的时区的秒数。因此,例如,来自美国东部时区的时间戳将附加 14400。如果不是因为来自非 DST 时间(即年初)的时间戳也附有 14400,表示东部时区,这可能很容易处理。

考虑到夏令时,我有没有什么特别有效的方法可以将这堆数据转换为 Python 中的纯 UTC 时间戳?

【问题讨论】:

    标签: python database datetime time timezone


    【解决方案1】:

    您可以像这样使用dateutil modulepytz 模块:

    import dateutil.parse
    import pytz
    
    parsed_as_utc = dateutil.parser.parse(timestamp).astimezone(pytz.utc)
    

    【讨论】:

    • 如何考虑不同的时区?这适用于我的时区(东部)的时间戳,但当系统时间与时间戳的预期时间不同时,效果就不那么好了。
    • @Hevrioch:我的示例是假设您将 ISO-8601 时间戳存储为文本。这些时间戳包含有关时区的信息,因此解析的日期时间也包含它。通过调用.astimezone(pytz.utc),您可以将不同时区的时间戳转换为 UTC 时间。这正是您所要求的(“将这堆数据转换为纯 UTC 时间戳”)。
    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    相关资源
    最近更新 更多