pyephem当地时间问题

时间:2019-03-31 09:03:32

标签: 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小时,这是毫无用处的。

1 个答案:

答案 0 :(得分:1)

如果没有内置的世界时区边界地图,PyEphem无法将经/纬度转换为时区,可惜,事实并非如此。

但是,如果您设置了计算机时,您的计算机操作系统就会知道您的时区,并且PyEphem具有一个“ localtime()”功能,该功能会要求操作系统提供用于打印时间的时区:

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