Используя python, конвертируем время UTC в местное время по долготе и широте

Я использую api sunrise-sunset, чтобы получить восход и закат на день.

>>> url = "https://api.sunrise-sunset.org/json?lat=36.7201600&lng=-4.4203400&date=2017-07-31"
>>> import urllib2
>>> import json
>>> resp = urllib2.urlopen(url)
>>> data = json.load(resp)
>>> sunriseUtc = data.get("results").get("sunrise")
>>> sunriseUtc
u'5:23:18 AM'

Я хочу преобразовать это время в формате UTC в местное время в Long, которое передается в URL. т.е. не локальный пользователь.

Любая помощь будет принята с благодарностью.

1 ответ

Вместо того, чтобы использовать веб-запрос, лучше использовать pyephem, это pip install pyephem возможность и даст вам время восхода / установки (и многое другое) для данного местоположения (широта / долгота), основываясь на физических значениях.

>>> import ephem
>>> sun = ephem.Sun()
>>> greenwich = ephem.Observer()
>>> greenwich.lat = '51:28:38'
>>> print(greenwich.horizon)
0:00:00.0
>>> greenwich.date = '2007/10/1'
>>> r1 = greenwich.next_rising(sun)
>>> greenwich.pressure = 0
>>> greenwich.horizon = '-0:34'
>>> greenwich.date = '2007/10/1'
>>> r2 = greenwich.next_rising(sun)
>>> print('Visual sunrise: %s' % r1)
Visual sunrise: 2007/10/1 05:59:30
>>> print('Naval Observatory sunrise: %s' % r2)
Naval Observatory sunrise: 2007/10/1 05:59:50

Используя Python 3.8:

Для начала добавьте ниже следующие модули:

время импорта

от времени импорт по местному времени

Затем вызовите метод localtime() и вставьте свое время (в данном случае переменную "sunriseUtc"):

местное время (sunriseUtc).

Вот и все.

Если вы хотите отформатировать время (как оно представлено), вам нужно будет импортировать strftime (сокращенно для времени в строковом формате) из модуля времени. Затем настройте формат на свое время. Затем передайте тот же аргумент сверху: например

от времени import strftime

strftime ("% m /% d /% Y%I:%M:%S%p", местное время (sunriseUtc))

05.12.2019 05:57:05

У меня это сработало при использовании модуля запросов для загрузки данных из API openweathermap.org.

Если вам нужна дополнительная поддержка, см. Документацию модуля времени: https://docs.python.org/2/library/time.html

Примечание. Мой проект был построен на примере из "Project: Fetching Current Weather Data", который можно найти здесь: https://automatetheboringstuff.com/chapter14/

преобразование даты и времени в Python

Другие вопросы по тегам