Python 如何使用weatherbit.io api获取特定日期的天气报告,即使时区发生变化?

Python 如何使用weatherbit.io api获取特定日期的天气报告,即使时区发生变化?,python,json,datetime,timezone,weather-api,Python,Json,Datetime,Timezone,Weather Api,我正在使用WeatherBitAPI获取历史天气报告。它根据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 = a

我正在使用WeatherBitAPI获取历史天气报告。它根据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转换为带有时区(“美国/洛杉矶”)的datetime,它从前一天开始(即洛杉矶时间GMT-7:00小时

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


我怎样才能从2018-08-12:00到2018-08-12:23得到天气报告,即使时区发生变化。

我通过设定的日期间隔开始日期=2018-08-12:07和结束日期=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时间。现在我可以正确地获取全天报告。

只需根据需要转换为UTC时间的时间请求时间即可。因此,如果你想在当地时间(GMT-7:00)找到2018-08-01-12:00,那么就去问2018-08-01-19:00。。我的要求是得到全天报告。如果我给出start_date=2018-08-11:19和end_date=2018-08-12:24,则表示显示错误“每个请求仅1天,或升级您的密钥”。我有200个免费历史数据请求。