如何按时区获取时间,在 OpenWeatherMap API 响应中给出。 Python

How to get time by timezone, that gives in OpenWatherMap API response. Python

我通过请求 OWM API:

获得了一些城市当前天气的信息
response = requests.get(
    f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={KEY}&units=metric')

content = json.loads(response.text)
weather_info = {'degrees': f"{content['main']['temp']}",
                'state': f"{content['weather'][0]['main']}",
                'city': f"{content['name']}",
                'timezone': f"{content['timezone']}",
                'id': f"{city.id}"}

当我打印 weather_info 得到这个 JSON 响应时(例如城市是纽约):

{'degrees': '9.64', 'state': 'Clouds', 'city': 'New York', 'timezone': '-14400', 'id': '2'}

那么我如何通过此响应 ('timezone': '-14400') 中给出的时区获取纽约的当前时间?

这可以用datetime来完成:

import datetime 

def get_date(timezone):
    tz = datetime.timezone(datetime.timedelta(seconds=int(timezone)))
    return datetime.datetime.now(tz = tz).strftime("%m/%d/%Y, %H:%M:%S") #strftime is just for visually formatting the datetime object

weather_info = {'degrees': f"{content['main']['temp']}",
                'state': f"{content['weather'][0]['main']}",
                'city': f"{content['name']}",
                'timezone': f"{get_date(content['timezone'])}",
                'id': f"{city.id}"}