如何使用weatherbit.io API甚至时区更改获取特定日期的天气报告?

时间:2018-08-14 14:05:32

标签: python json datetime timezone weather-api

我正在使用weatherbit API获取历史天气预报。它根据UTC或GMT时间做出响应。但是我的时区不同。

例如

api_values_call = requests.get('https://api.weatherbit.io/v2.0/history/hourly?key=yourapikey&city=seattle,WA&start_date=2018-08-12:00&end_date=2018-08-12:24&units=I')
api_values = api_values_call.json()

它返回天气报告 GMT / UTC 2018-08-12:00至2018-08-12:23 带有时间戳。

如果我将 utctimestamp转换为带时区('America / Los_Angeles')的日期时间,则它开始于前一天的时间(即Los_Angels时间是 GMT-7:00 小时。

所以我要从 2018-08-11:17 获取报告,因为GMT-7已应用于给定的时间戳。但是我需要一整天的天气预报。

即使时区发生变化,我如何获取2018-08-12:00至2018-08-12:23的天气报告。

1 个答案:

答案 0 :(得分:0)

我通过设置日期间隔实现了 start_date = 2018-08-12:07&end_date = 2018-08-13:07 以获取 2018-08-12日期全天天气报告

历史记录通话可以持续24小时,因此我们可以根据您的时区设置时间。

然后,您只需将时间戳GMT / UTC转换为您的时区即可。

日光时间更改也很重要,因为有时它会增加或减少。

因此找到UTC偏移时间并动态使用。

例如:

tz = pytz.timezone('America/Los_Angeles')
dt = datetime.strptime(given_date, '%Y-%m-%d')
offset = int(tz.utcoffset(dt).total_seconds() / 3600.0)

给定时间2018-08-12: 07 是utcoffset时间。现在,我可以正确获取全天报告了。