gpt4 book ai didi

python - 将 UTC 时间转换为纪元

转载 作者:行者123 更新时间:2023-12-05 08:27:58 25 4
gpt4 key购买 nike

我希望分析与天气数据相关的交通流量。交通数据有一个 UNIX 时间戳(又名纪元),但我在将时间戳(在天气数据中)转换为纪元时遇到了麻烦。问题是我在挪威,天气数据中的 UTC 时间戳与我不在同一时区 (GMT+1)。

我的初步方法

我首先尝试将其转换为纪元并将数据视为 GMT+1 时区。然后我通过减去 UTC 和 GMT+1 之间的秒数差异来进行补偿。

方法的问题

我首先意识到这种方法非常原始而且不是很优雅(事实上,它充其量可能是一种丑陋的 hack)。然而,这里最大的问题是 UTC 和 GMT+1 之间的差异不是恒定的(由于夏令时)。

问题

是否有任何可靠方法将 UTC 时间转换为 python 中的 UNIX 时间戳(考虑到我的机器处于 GMT+1)?时间戳格式如下:

Y-m-d HH:MM:SS

编辑:尝试过 rmunns 的解决方案:

def convert_UTC_to_epoch(timestamp):
tz_UTC = pytz.timezone('UTC')
time_format = "%Y-%m-%d %H:%M:%S"
naive_timestamp = datetime.datetime.strptime(timestamp, time_format)
aware_timestamp = tz_UTC.localize(naive_timestamp)
epoch = aware_timestamp.strftime("%s")
return (int) (epoch)

如下所示,这不能正常工作:

#Current time at time of the edit is 15:55:00 UTC on June 9th 2014.
>>> diff = time.time() - convert_UTC_to_epoch("2014-06-09 15:55:00")
>>> diff
3663.25887799263
>>> #This is about an hour off.

最佳答案

解决方案是使用日历模块(灵感来自 here )

>>>#Quick and dirty demo
>>>print calendar.timegm(datetime.datetime.utcnow().utctimetuple()) - time.time()
>>>-0.6182510852813721

这里是转换函数:

import calendar, datetime, time

#Timestamp is a datetime object in UTC time
def UTC_time_to_epoch(timestamp):
epoch = calendar.timegm(timestamp.utctimetuple())
return epoch

关于python - 将 UTC 时间转换为纪元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24027863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com