Página 1 de 1

Hacer que Raspberry funcione siempre con hora UTC

Publicado: 16 Nov 2018, 06:37
por mugurdi
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?

Re: Hacer que Raspberry funcione siempre con hora UTC

Publicado: 16 Nov 2018, 08:30
por egrueda
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.

Re: Hacer que Raspberry funcione siempre con hora UTC

Publicado: 17 Nov 2018, 05:34
por mugurdi
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

Re: Hacer que Raspberry funcione siempre con hora UTC

Publicado: 17 Nov 2018, 08:48
por egrueda
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í:

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";
De esa forma la zona horaria del resto de aplicaciones sigue siendo la correcta, pero en la aplicación en concreto, usa UTC

Re: Hacer que Raspberry funcione siempre con hora UTC

Publicado: 18 Nov 2018, 07:04
por mugurdi
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:

Código: Seleccionar todo

datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S') 
Este el el archivo que he utilizado para probar comparando las dos horas:

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")