Analizador de portabilidad de cadenas de fecha

Pega una fecha o marca de tiempo (o un fragmento completo de registro) y descubre qué valores interpretarían de forma distinta —o rechazarían— `Date` de JavaScript, Python y otros analizadores habituales, y por qué.

El análisis se realiza localmente en tu navegador. El archivo nunca se carga al servidor.

Cómo usar esta herramienta

  1. Pega una fecha o un bloque de texto más largo con fechas; los datos no salen de tu navegador.
  2. Selecciona «Analizar fechas».
  3. Revisa cada valor señalado: qué lo hace ambiguo o arriesgado y en qué entornos hay discrepancias.
  4. Usa la conversión sugerida a ISO 8601 cuando se ofrezca. Algunas ambigüedades no se pueden resolver automáticamente; se explican en vez de adivinarlas.

Supuestos

Fuentes y datos de referencia

Metodología

Cada subcadena parecida a una fecha se clasifica por su forma y se compara con discrepancias conocidas de `Date` de JavaScript, Python y analizadores estrictos (incluidos algunos motores SQL): medianoche implícita UTC frente a local para fechas sin hora, interpretación local frente a UTC para fechas-hora sin desplazamiento, inferencia de siglo para años de dos cifras y rechazo de componentes sin ceros iniciales por analizadores estrictos. Solo se propone una conversión ISO 8601 inequívoca; nunca se adivina.

Ejemplo resuelto

Fecha ambigua separada por barras

Datos de entrada: 01/02/2024

Resultado: Tanto 1 como 2 son meses válidos; según la convención, puede significar 2 de enero o 1 de febrero. Se señala como error y no se ofrece conversión automática: adivinar el orden sería peor que dejar visible el problema.

Cadena ISO que solo contiene una fecha

Datos de entrada: 2024-01-15

Resultado: `new Date("2024-01-15")` de JavaScript la interpreta como medianoche UTC, pero otros lenguajes y la forma `new Date(year, month, day)` de JavaScript interpretan una fecha simple como medianoche local. En una zona horaria al oeste de UTC puede resultar un día calendario distinto. Se advierte del riesgo; ya es ISO 8601 válida y no se convierte.

Fecha sin ceros de relleno

Datos de entrada: 2024-1-5

Resultado: JavaScript y Python la aceptan de forma permisiva, pero algunos analizadores estrictos de fechas SQL la rechazan. Se convierte de forma segura a 2024-01-05.

Orientación práctica
Errores comunes

Preguntas frecuentes

¿Por qué 01/02/2024 es un error y 25/12/2024 solo es informativo?

En 01/02/2024, tanto 1 como 2 son números de mes válidos, así que no se puede determinar el orden solo con la cadena. En 25/12/2024, 25 no puede ser un mes y el orden día/mes queda determinado. No es ISO 8601, pero no es ambiguo, por lo que se clasifica con menor gravedad y puede convertirse automáticamente.

¿Por qué no se supone que un año de dos cifras como "24" significa 2024?

Es probable, pero algunos sistemas interpretan la misma cadena como 1924 y otros como 2024 según la convención de siglo que implementan. Esta herramienta no adivina silenciosamente cuando una suposición equivocada sería peor que no hacerla.

¿Es realmente insegura una fecha simple como 2024-01-15?

El riesgo concierne al instante que representa al leerla con `Date` de JavaScript frente a la mayoría de los otros analizadores: JavaScript trata una fecha sin hora como UTC, mientras que muchos otros lenguajes la tratan como hora local. Como texto o dato almacenado es totalmente segura; el riesgo aparece cuando se convierte en un objeto de fecha y se consulta qué instante representa.

¿Por qué `new Date('2024-01-15')` puede mostrar el día anterior?

ECMAScript interpreta la forma ISO que solo contiene fecha como medianoche UTC. En una zona horaria al oeste de UTC, al mostrar ese instante en hora local puede corresponder al día calendario anterior. Es distinto de construir la medianoche local o tratar el valor como fecha sin zona horaria; este comprobador explica el riesgo según la forma, pero no ejecuta analizadores de otros entornos.

Última revisión:

Este es un detector limitado basado en formas, no un analizador de fechas completo: reconoce cinco patrones concretos de fecha/hora y nada más. No detecta fechas en lenguaje natural, marcas de tiempo Unix ni formatos locales inusuales. Tampoco puede saber qué fecha se pretendía expresar en un caso realmente ambiguo; informa de la ambigüedad en lugar de resolverla.

Las preferencias de tema y de herramientas, junto con las listas de herramientas guardadas y recientes, se almacenan solo en este navegador.