python 3.x - localtime en realidad no da tiempo local
python-3.x raspberry-pi (1)
Debe pasar datetime.utcnow()
al observador en lugar de su hora local.
ephem
espera latitude
y longitude
en radianes si se pasa como flotadores, use cadenas en su lugar:
from datetime import datetime, timezone
import ephem
now = datetime.now(timezone.utc)
Vancouver = ephem.Observer()
Vancouver.lat = ''49.2878''
Vancouver.horizon = 0
Vancouver.lon = ''-123.0502''
Vancouver.elevation = 80
Vancouver.date = now
sun = ephem.Sun(Vancouver)
print("sunrise is at", ephem.localtime(Vancouver.next_rising(sun)))
print("sunset is going to be at ",
ephem.localtime(Vancouver.next_setting(sun)))
print("now is ",now.astimezone())
Salida
sunrise is at 2014-09-20 06:55:38.000005
sunset is going to be at 2014-09-19 19:16:38.000004
now is 2014-09-19 19:15:04.171486-07:00
obviamente hay un módulo de tiempo que funciona en combinación con este problema, pero aún no lo he encontrado. Simplemente estoy tratando de usar Pyephem en una Raspberry Pi para averiguar a qué hora es el amanecer y el atardecer para mis coordenadas de latitud y longitud. el código es simplemente esto:
import ephem
import datetime
import time
now = datetime.datetime.now()
gmNow = time.mktime(time.localtime())
Vancouver = ephem.Observer()
Vancouver.lat = 49.2878
Vancouver.horizon = 0
Vancouver.lon = -123.0502
Vancouver.elevation = 80
Vancouver.date = now
# Vancouver.date = time.localtime()
sun = ephem.Sun()
print("sunrise is at",ephem.localtime(Vancouver.next_rising(sun)))
print("sunset is going to be at ",ephem.localtime(Vancouver.next_setting(sun)))
print("now is ",now)
print("gmNow is",gmNow)
Sin embargo, lo que exporta, cuando eso corre, es incorrecto en 8 horas. por lo que parece que el ephem.localtime () no se está ejecutando en realidad.
pi@raspberrypi ~ $ sudo python3 vivarium_sun.py
sunrise is at 2014-09-19 12:55:56.000004
sunset is going to be at 2014-09-19 00:52:30.000004
now is 2014-09-19 06:22:24.014859
gmNow is 1411132944.0
Me está volviendo loco, y obviamente es una de esas cosas simples una vez que está resuelto, así que voy a la mente colmena aquí.
EDITAR ** Simplemente escribiendo ''fecha'' en la línea de comando de la Raspberry Pi devuelve lo siguiente:
pi@raspberrypi ~ $ date
Fri Sep 19 18:41:42 PDT 2014
que es exacto