#python #localtime #pyephem
#python #localtime #pyephem
Вопрос:
У меня есть скрипт Python с временной задержкой, который отлично работает в Великобритании, сейчас я живу во Франции, он все еще рассчитывает стандартное время GMT. Как я могу изменить код, чтобы он отображал мое фактическое местоположение?
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 часа опережаем gmt, что, конечно, бесполезно.
Ответ №1:
PyEphem не удалось перевести широту / lon в часовой пояс, не имея встроенной карты границ часовых поясов мира, чего, увы, в ней нет.
Но операционная система вашего компьютера знает ваш часовой пояс, если вы его установили, и PyEphem имеет функцию «localtime ()», которая запросит у операционной системы часовой пояс, который следует использовать для печати времени:
Комментарии:
1. Спасибо! Я нашел здесь хороший пример, который тоже хорошо работает — gist.github.com/scivision/228cad3ee5efe74dd5230ddb19bf36fe