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
Administrador de Sistemas, Programador, Docente y ahora resulta que también Blogger (peor es ser tictoker). Más de 20 años de experiencia en computación atendiendo nabos y resolviendo problemas, los cuales si no fuera por estos nabos, no habrían ocurrido en primer lugar. Escribo más que nada sobre tecnología y herramientas en general, además de algunos artículos con opiniones tan subjetivas como irrelevantes, así que si no te gustan, mejor madura y superalo.