¿Cómo obtener la zona horaria con TZDATA y TIME? - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: General (https://gambas-es.org/forum-4.html) +--- Tema: ¿Cómo obtener la zona horaria con TZDATA y TIME? (/thread-1402.html) |
¿Cómo obtener la zona horaria con TZDATA y TIME? - Grandamakulo - 15-06-2023 Hola, compañeros: Lo del asunto, o sea, quisiera obtener para una localización dada —zona horaria— y en un momento dado por una fecha en formato DATA y TIME, con la base de datos «textual» tzdata la diferencia entre la hora oficial y el UTC. Si no con DATA y TIME, podría valer cualquier otra datación continua, como el día juliano. Hay varias librerías por ahí en PASCAL o C, pero soy un torpe incapaz de pasarlo a GAMBAS3. Ojo, para el momento actual en el bicho u PC actual es bastante fácil: System.TimeZone En: https://en.wikipedia.org/wiki/Tz_database , en el apartado «Use in software systems» hay implementación en varios lenguajes. Pero, insisto, mi torpeza me hace incapaz de traducirlo. Un saludo y gracias de antemano. PS.—https://www.iana.org/time-zones RE: ¿Cómo obtener la zona horaria con TZDATA y TIME? - tincho - 15-06-2023 Probaste poner en la terminal date --help ? Ese comando tiene un montón de opciones de salida. Para mas claridad, pone un ejemplo de lo que querés obtener (literalmente) y de lo que querés proporcionarle a la "función" para que te devuelva eso que buscas. RE: ¿Cómo obtener la zona horaria con TZDATA y TIME? - Grandamakulo - 16-06-2023 ¡Muchas gracias por tu rápida respuesta! (15-06-2023, 22:15)tincho escribió: Probaste poner en la terminal date --help ? Ese comando tiene un montón de opciones de salida. Sí, incluso el uso de alguna librería astronómica perdida por ahí, pero me gustaría, si es posible, no tener que llamar a algo externo. (15-06-2023, 22:15)tincho escribió: Para mas claridad, pone un ejemplo de lo que querés obtener (literalmente) y de lo que querés proporcionarle a la "función" para que te devuelva eso que buscas. ¡Claro! Código: Public Function Dif_HL_UTC(sZonaHoraria As String, fJD As Float) As Single Por ejemplo, para fJD = 2458341.5 —11 de agosto de 2018— y sZonaHoraria = "Africa/Ceuta" resulta que Dif_HL_UTC = +2, ya que HL = UTC + 2; no sé si ha quedado claro, a pesar de mi natural farragosidad. RE: ¿Cómo obtener la zona horaria con TZDATA y TIME? - vuott - 18-06-2023 (15-06-2023, 16:49)Grandamakulo escribió: En: https://en.wikipedia.org/wiki/Tz_database , en el apartado «Use in software systems» hay implementación en varios lenguajes.Aquí utilizando la librería externa GLib, mencionada en el enlace que has citado: Código: ' Gambas module file RE: ¿Cómo obtener la zona horaria con TZDATA y TIME? - Grandamakulo - 22-06-2023 Hola, @vuott: He estado analizando lo que me propones. Lo primero, que trataba de montarlo sin funciones externas. Lo segundo, en definitiva, aunque tu solución es mucho más elegante, es básicamente lo que ya hacía con distintas librerías. Y en cuanto a System.Timezone, claro, funciona genial, pero sólo para este momento y para este equipo. Yo necesito que, en función de la zona horaria que se proponga, no la del equipo, y para el momento propuesto, no para el tiempo del equipo. En cualquier caso, grazie mille per tutto RE: ¿Cómo obtener la zona horaria con TZDATA y TIME? - vuott - 22-06-2023 (22-06-2023, 13:13)Grandamakulo escribió: en cuanto a System.Timezone, claro, funciona genial, pero sólo para este momento y para este equipo. Yo necesito que, en función de la zona horaria que se proponga, no la del equipoAh, entiendo. Bueno, en ese caso mi solución con recursos externos de GLIB puede ayudarte. De hecho, tú puedes establecer el nombre de la zona horaria, que quieras, en la función "g_time_zone_new_identifier()". (22-06-2023, 13:13)Grandamakulo escribió: grazie mille per tuttoÈ stato un piacere e molto interessante aiutarti. Ciao. |