如何使用获取特定日期的天气预报威瑟比特.ioapi连时区都改变了?

2024-06-02 12:33:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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 带有时间戳。在

如果我用时区('America/Los Angeles')将utctimestamp转换为datetime,则从前一天开始(即洛杉矶时间是格林尼治标准时间-7:00小时)。在

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

我怎样才能得到2018-08-12:00到2018-08-12:23的天气预报,即使时区改变了。在


Tags: httpsapigetdate时间历史callrequests
1条回答
网友
1楼 · 发布于 2024-06-02 12:33:16

我通过设定的日期间隔开始日期=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时间。现在我可以正确地得到全天的报告了。在

相关问题 更多 >