Hola,
tengo una Raspberry que registra ciertos datos meteorológicos cada 10 minutos en un fichero. El día que se cambió la hora guardó dos veces los registros entre las 2 y las 3 de la madrugada. Pienso que para solucionar eso, debería funcionar siempre con hora UTC. Y después, cuando se quieran mostrar los datos, se debería convertir el tiempo a hora local.
Mi pregunta es: ¿como puedo configurar a Raspberry para que siempre funciones con hora UTC?
Hacer que Raspberry funcione siempre con hora UTC
- egrueda
- Pi God
- Mensajes: 3426
- Registrado: 10 Feb 2017, 19:31
- Agradecido: 7 veces
- Agradecimiento recibido: 269 veces
Si estás usando raspbian, puedes usar el comando "dpkg-reconfigure tzdata" para cambiar la zona horaria de la raspberry.
De todos modos, lo que se suele hacer en estos casos es convertir la hora local en utc antes de guardar en la base de datos.
De esa forma la hora sigue siendo correcta en la raspberry para todos los registros generales y otras tareas programadas.
De todos modos, lo que se suele hacer en estos casos es convertir la hora local en utc antes de guardar en la base de datos.
De esa forma la hora sigue siendo correcta en la raspberry para todos los registros generales y otras tareas programadas.
No respondo a privados ;-)
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
-
- Pi Newbie
- Mensajes: 6
- Registrado: 05 Ene 2018, 08:14
- Agradecido: 0
- Agradecimiento recibido: 0
Gracias por tu ayuda.
He cambiado la hora con tzdata. Porque la segunda solución que dices, no llego a entender muy bien cómo sería: al cambiar la hora en otoño se dice que "a las tres son las dos", en el fichero de ese día hay más registros que otros días, porque en realidad el contenido de esa hora se duplica. Es que no lo veo con claridad, tal vez es que me estoy haciendo viejo jeje
He cambiado la hora con tzdata. Porque la segunda solución que dices, no llego a entender muy bien cómo sería: al cambiar la hora en otoño se dice que "a las tres son las dos", en el fichero de ese día hay más registros que otros días, porque en realidad el contenido de esa hora se duplica. Es que no lo veo con claridad, tal vez es que me estoy haciendo viejo jeje
- egrueda
- Pi God
- Mensajes: 3426
- Registrado: 10 Feb 2017, 19:31
- Agradecido: 7 veces
- Agradecimiento recibido: 269 veces
Me refiero a que tu servidor puede tener una zona horaria local, mientras que tu aplicación usa UTC.
Un ejemplo con PHP sería así:
De esa forma la zona horaria del resto de aplicaciones sigue siendo la correcta, pero en la aplicación en concreto, usa UTC
Un ejemplo con PHP sería así:
Código: Seleccionar todo
<?php
date_default_timezone_set('Europe/Madrid');
echo date("d-m-Y H:i:s", time()) . "<br>\n";
date_default_timezone_set('UTC');
echo date("d-m-Y H:i:s", time()) . "<br>\n";
No respondo a privados ;-)
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
-
- Pi Newbie
- Mensajes: 6
- Registrado: 05 Ene 2018, 08:14
- Agradecido: 0
- Agradecimiento recibido: 0
Hola,
En python he conseguido lo que comentas, tener la hora local en la máquina, y convertirla a UTC para guardar datos, con este código:
Este el el archivo que he utilizado para probar comparando las dos horas:
En python he conseguido lo que comentas, tener la hora local en la máquina, y convertirla a UTC para guardar datos, con este código:
Código: Seleccionar todo
datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
Código: Seleccionar todo
import datetime
import sys
sys.stdout.write("\nMadrid ")
sys.stdout.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') )
sys.stdout.write("\nUTC ")
sys.stdout.write(datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'))
sys.stdout.write("\n")