Llega JavaScript Temporal
(developer.mozilla.org)- Resumen
- La implementación del objeto JavaScript Temporal empieza a lanzarse en versiones experimentales de los navegadores
- Se espera que el manejo de fechas y horas para desarrolladores web se simplifique y modernice de forma importante
- Será posible usar funciones integradas eficientes y precisas en aplicaciones que manejan programación de tareas, internacionalización y datos relacionados con el tiempo
- Problemas del objeto JavaScript
Date
- Fue creado copiando la implementación inicial de
java.util.Datede Java de 1995 - Solo admite la hora local del usuario y UTC, y no tiene soporte de zonas horarias
- El comportamiento de análisis es muy inestable y es mutable
- Es difícil calcular el horario de verano (DST) y los cambios históricos del calendario
- Funciones principales de Temporal
- Diseñado como un reemplazo completo del objeto
Date - Soporta la representación de zonas horarias y calendarios
- Ofrece más de 200 métodos utilitarios
- Incluye diversas funciones como conversión, comparación, cálculo y formato
- Estado del soporte en navegadores
- Firefox tiene actualmente la implementación más madura
- Está disponible como función experimental en Firefox Nightly
- Safari y Chrome también están avanzando en su implementación
- Puede probarse mediante
@js-temporal/polyfillen la página de documentación de TC39
- Componentes clave
Duration: diferencia entre dos puntos en el tiempoInstant: marca de tiempoZonedDateTime: fecha/hora con zona horariaPlainDateTime: fecha/hora sin zona horaria- También ofrece varias otras clases relacionadas con fecha/hora
Se espera que esta nueva API ofrezca un enfoque moderno para manejar fechas y horas en JavaScript.
6 comentarios
La respuesta al mensaje de ese casi algo llegó demasiado tarde
Al principio, para implementar
Date, también tomaron mucho de Java, y para implementar Temporal también tomaron bastante de Java, así que da para pensar si de verdad tenía que tardar tanto.Java 8, que incluía
LocalDateTime, salió en 2014, así que si hubieran sacado antes una implementación de Temporal basada en eso, probablemente no habría hecho falta que todo se fragmentara en varias bibliotecas de terceros.Eh, esto me suena mucho de algún lado...
Salvo por haber cambiado
LocalDateTimeaPlainDateTime, es prácticamente igual a Java…Está bien tenerlo… pero no sé si era necesario llegar hasta este punto…
Antes, para gestionar el tiempo en varias zonas horarias, había que usar una librería o implementarlo considerando de entrada varias condiciones; estaría bien que se avance hacia un soporte nativo.