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
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)))/3600En 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.
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.