Categorías: Varios

Calcular diferencia horaria

Una de los cálculos que a veces toman tiempo y que sino se hacen bien pueden dar lugar a confusiones y errores es sin dudas es coordinar algo en diferentes zonas horarias, algo tan simple como coordinar una meeting entre varias personas que estén repartidas en varias zonas horarias puede ser una pesadilla.

Por eso me puse a programar una herramienta que permita coordinar a partir de una fecha y hora, obtener la hora exacta en una o varias zonas horarias, incluso teniendo en cuenta cambios de hora verano/invierno, lo que permite realizar un cálculo a futuro sin dar ningún margen a error.

Otro uso muy común y puede que más frecuente para un administrador de sistemas es al analizar logs, es muy habitual que la zona horaria del servidor sea diferente a la del administrador y está a su vez diferente a la del cliente, al analizar logs e informar al cliente de algún evento hay que hacer posiblemente varias veces el cálculo por cada evento que queremos informar al cliente.

Para simplificar este cálculo y efectuar lo de forma rápida y correcta posible es que he escrito esta herramienta y lo he hecho en bash ¿Porque en bash? Porque puedo, punto. El repositorio lo puedes encontrar aquí.

Instalación

cd /tmp

git clone https://github.com/alvarodeleon/tzcalc

sudo cp tzcalc/tzcalc /usr/sbin/tzcalc

sudo chmod + /usr/sbin/tzcalc

Uso

tzcalc --local "[timezone],[date] [time]" --query "[timezone_1],[timezone_2]"

Ejemplo:

tzcalc -l "America/Montevideo,2022-09-10 15:00" -q "America/New_York,Europe/London,Europe/Rome"

Salida

America/New_York.Europe/London
2022-09-10 18:00 America/New_York.Europe/London
2022-09-10 20:00 Europe/Rome

La TimeZone puede ser llenada solo con el nombre de la ciudad, tzcac intentara resolver el nombre de la TZ t localizar la zona correcta para esa ciudad:

tzcalc -l "Montevideo,2022-09-10 15:00" -q "London,Rome"

En caso que diga “[name] is a invalid TZ” se debe completar el nombre completo de la TZ

tzcalc -l "America/Montevideo,2022-09-10 15:00" -q "Europe/London,Europe/Rome"

Si se necesita calcular una fecha en el futuro, puede completarse de la siguiente manera:

tzcalc -l "Montevideo,2022-09-10 15:00" -q "London,Rome"

Si se completa solo la hora, tzcac asume que la fecha es hoy

tzcalc -l "Montevideo,22:00" -q "New_York,London,Rome"

Salida:

2022-09-10 21:00 America/New_York
2022-09-11 02:00 Europe/London
2022-09-11 03:00 Europe/Rome

 

Entradas recientes

Estadisticas de EasyMySQL

Normalmente, a las estadísticas del blog no le presto demasiada atención, sin embargo, trabajando en…

6 days hace

Nueva pagina de Publicaciones

La idea principal detrás de este blog es marca personal, el blog es para centralizar…

2 weeks hace

Migrar una maquina virtual desde VirtualBox a KVM

El migrar el disco duro es bastante sencillo como se verá a continuación, la principal…

3 weeks hace

Instalar QEMU/KVM y Virtual Machine Manager

Cuando se trata de virtualización en el escritorio, una de las primeras opciones son sin…

1 month hace

Instalar adaptador WIFI TP-Link AX 1800/ Archer TX20U en Debian y Ubuntu

Siempre he sido un ferviente defensor de una conexión por cable UTP para trabajar por…

2 months hace

Nuevo dominio para el blog, otra vez!!!

Al fin pude recuperar alvarodeleon.com, no es que lo hubiera perdido, fue peor, lo deje…

3 months hace