Escrito por

Project Manager & Head of Interoperability at Salutic Soluciones, S.L.
Pregunta Kurro Lopez · jun 23

Convertir código de zona horaria en número de zona horaria

Hola a todos,

Estamos desarrollando una aplicación de citas médicas que conecta las agendas de los médicos con un proveedor de citas.

El proveedor nos está devolviendo la cita en el siguiente formato:

Thu Jul 03 08:20:00 CEST 2025

Significa, 03 de julio de 2025 a las 08:20:00 Hora de verano de Europa central (UTC+2)

Pero necesitamos el siguiente formato:

2025-07-03 08:20:00+02:00

¿Existe alguna opción para convertir el código horario de zona (CEST) a UTC+x?

¿Cómo convertir el código horario de zona (CEST, CET, ET, EDT, etc..) en su zona horaria UTC (UTC+2, UTC+1, UTC-5, etc..)?

Saludos cordiales

Product version: IRIS 2021.1
$ZV: IRIS for Windows (x86-64) 2021.1.3 (Build 389U) Wed Feb 15 2023 14:50:06 EST

Comments

Pues igual resulta un poco kafkiano, pero para calcular la diferencia entre la hora local y la hora UTC puedes hacer un cálculo tal que así:

##class(%Library.UTC).Diff(##class(%Library.TimeStamp).DisplayToLogical($zdatetime($horolog,3)),##class(%Library.UTC).ConvertLocaltoUTC($zdatetime($horolog,3)))/3600

En ese ejemplo cojo la hora local con el DisplayToLogical y la hora UTC con el ConvertLocaltoUTC y calculo la diferencia en segundos, la cual la divido entre los segundos que tiene una hora et...voila! Ya tienes la diferencia de horas entre hora local y UTC, ahora sólo tienes que concatenar esa diferencia con tu hora local y tendrías lo que estás buscando.

0
Kurro Lopez  jun 25 to Luis Angel Pérez Ramos

Muchas gracias,

Pero mi mayor problema es poder saber que zona es con la información que me da el proveedor, porque solo pone el código de la zona horaría, en este caso CEST.

Si me llega otro código diferente, no se cual es su zona.

0