Проблема местного времени Pyephem

У меня есть таймлапс-скрипт на Python, который отлично работает в Великобритании, теперь я живу во Франции, он все еще рассчитывает стандартное время по Гринвичу. Как я могу изменить код, чтобы он отображал мое фактическое местоположение?

import sys
import os
import time
import ephem

#find time of sun rise and sunset
sun = ephem.Sun()
home = ephem.Observer()
home.lat, home.lon = '45.226691', '0.013133' #your lat long 
sun.compute(home)
sunrise, sunset = (home.next_rising(sun),
                   home.next_setting(sun))
daylightminutes = (sunset - sunrise) * 1440 # find howmany minutes of daylight there are
daylightminutes = (round(daylightminutes))
sunriselessonemin = ephem.date(sunrise + 1*ephem.minute)

print "prog started at(home.date) =  %s" %(home.date)
print "datetime = %s" % time.strftime("%Y/%-m/%-d %H:%M:%S")
print "sunrise = %s" %sunrise
print "sunset = %s" %sunset
print "daylight mins = %s" %(daylightminutes)

....

while ephem.now() <= sunrise:
                time.sleep(1)
                dostuff()

Код предполагает, что это восход/закат солнца по Гринвичу, а не по местному времени, несмотря на то, что я знаю мою фактическую широту/долготу. Так что в настоящее время во Франции мы на 2 часа опережаем время по Гринвичу, что, конечно, бесполезно.


person Lmm Cams    schedule 31.03.2019    source источник


Ответы (1)


PyEphem не мог перевести широту/долготу в часовой пояс, не имея встроенной карты границ мировых часовых поясов, чего, увы, у него нет.

Но операционная система вашего компьютера знает ваш часовой пояс, если вы его установили, а в PyEphem есть функция «localtime()», которая запросит у операционной системы часовой пояс, который будет использоваться для печати времени:

https://rhodesmill.org/pyephem/date.html#time-zones

person Brandon Rhodes    schedule 01.04.2019
comment
Спасибо! Я нашел здесь хороший пример, который тоже отлично работает — gist.github.com/scivision/228cad3ee5efe74dd5230ddb19bf36fe - person Lmm Cams; 01.04.2019