2 puntos por GN⁺ 2024-10-31 | 1 comentarios | Compartir por WhatsApp
  • Las zonas horarias son complejas, pero como las computadoras tienen que implementarlas, solo son raras dentro de un rango finito.
    • Asia/Kathmandu tiene un offset inusual respecto a UTC.
    • Africa/Casablanca no encaja bien en el modelo de zonas horarias, así que está codificada de forma rígida.
    • America/Nuuk comienza el horario de verano desde -01:00.
    • Africa/Cairo y America/Santiago comienzan el horario de verano a las 24:00 (no a las 00:00).
    • Australia/Lord_Howe tiene la regla de horario de verano más extraña.

PGXIIREAM: el papa Gregorio XIII lo controla todo

  • La mayor parte del mundo usa un sistema de tiempo basado en el calendario gregoriano.
  • El calendario gregoriano es muy útil para mantener la posición del sol consistente a lo largo del año.
  • UTC es una formalización moderna del calendario gregoriano, y todo el mundo ajusta su hora con base en él.

Los segundos intercalares no importan

  • La rotación de la Tierra se está desacelerando, así que se agregan segundos intercalares para compensarlo.
  • Los segundos intercalares se pueden ignorar porque los lenguajes de programación no representan 61 segundos.
  • Los proveedores de nube resuelven este problema haciendo que el reloj avance más lentamente durante un segundo intercalar.

Zonas horarias raras

Asia/Kathmandu tiene un offset inusual

  • Nepal está 5 horas y 45 minutos por delante de UTC.
  • Las computadoras pueden saber esto mediante la base de datos de zonas horarias de IANA.

Cadenas como PDT o CET no significan nada

  • Los identificadores de zonas horarias pueden ser ambiguos, y muchas zonas horarias comparten el mismo identificador.

¿Cómo se representa una zona horaria con horario de verano?

  • Las reglas de transición del horario de verano son complejas, y las computadoras calculan la hora local en función de ellas.

Africa/Casablanca y Asia/Gaza siguen la luna, pero las zonas horarias siguen al sol

  • Marruecos y Gaza ajustan el horario de verano de acuerdo con el Ramadán, y esto está codificado de forma rígida.

America/Nuuk cambia al horario de verano a la -1:00

  • Groenlandia comienza el horario de verano al mismo tiempo que Europa, pero en hora local empieza a la -1:00.

America/Santiago y Africa/Cairo cambian a las 24:00

  • Estas zonas horarias cambian al horario de verano a las 24:00, lo que significa pasar al día siguiente.

Australia/Lord_Howe tiene la transición de horario de verano más rara

  • La isla Lord Howe tiene una transición de horario de verano de 30 minutos.

Resumen de GN⁺

  • Las zonas horarias son complejas, pero como las computadoras tienen que implementarlas, solo son raras dentro de un rango finito.
  • Australia/Lord_Howe es la zona horaria más singular por su transición de horario de verano de 30 minutos.
  • Este artículo es útil para entender la complejidad de las zonas horarias y puede resultar interesante para programadores.
  • Un proyecto con funcionalidad similar es tzdb.

1 comentarios

 
GN⁺ 2024-10-31
Opiniones de Hacker News
  • La base de datos tz no calcula transiciones de zona horaria anteriores al Big Bang. Las marcas de tiempo previas al Big Bang son físicamente sospechosas.

    • Por ejemplo, Glib todavía aplica las reglas de Brasil de 1913 para calcular marcas de tiempo de São Paulo.
    • Tampoco se permiten segundos intercalares previos al Big Bang.
  • La zona horaria África/Adís Abeba no la sigue nadie en Etiopía.

    • Los locales usan la hora con un desfase de 6 horas.
    • El ciclo AM empieza al amanecer y el ciclo PM empieza al anochecer.
  • No es cierto que los lenguajes de programación no puedan representar minutos de 61 segundos.

    • Raku admite segundos intercalares.
    • DateTime.pm de Perl 5 también admite segundos intercalares, lo que aumenta la complejidad.
    • Los segundos intercalares casi no se usan y aumentan la complejidad del código.
  • La zona horaria Asia/Jerusalén es compleja por temas religiosos y estatales.

    • Por motivos religiosos, el horario de verano se decide cada año mediante negociación.
    • Existen excepciones para que el horario de verano no termine en Rosh HaShanah.
  • Experiencia escribiendo una función para encontrar la hora local a partir de una dirección de EE. UU.

    • Mapear de forma estática los estados y las zonas horarias es difícil por los casos límite.
    • Se compró y usó un CSV que mapeaba códigos postales y offsets de UTC.
    • Existen zonas horarias complejas por los territorios de ultramar y las bases militares de EE. UU.
  • La zona horaria de Palestina es anunciada cada año por el gobierno sin fechas fijas para el inicio y el fin del horario de verano.

    • Un aviso con menos de una semana de anticipación puede causar varios problemas.
  • Una lectura interesante sobre la flexibilidad del software de zonas horarias.

    • Las políticas de horario de verano no necesariamente se limitan a ajustes de 60 minutos.
    • Un país puede tener offsets que cambian continuamente durante el año.
  • Si un gobierno elimina el horario de verano y al año siguiente mueve la zona horaria, se genera confusión.

    • Al desarrollar apps de Android, hubo problemas por la base de datos de zonas horarias integrada en la imagen del sistema.
  • La base de datos tz es un diff del diff de la diferencia con UTC.

    • Se hacen actualizaciones y el changelog se guarda en git.
    • Puede expresarse como diff^4.
  • Una diferencia de 30 minutos por horario de verano no es la zona horaria más rara.

    • Antártida/Troll, Marruecos y Gaza tienen reglas que los sistemas no pueden representar.
    • Los segundos intercalares no son útiles para los programadores y en su mayoría se ignoran.