Normalizar fechas
"03/04/25" puede significar tres fechas distintas del calendario según quién la haya escrito, y una hoja de cálculo llena de fechas así es un error esperando a ocurrir en cuanto cruza una frontera. Este endpoint lee una fecha en el formato en que haya llegado y la devuelve como ISO-8601 sin ambigüedad, para que todos los sistemas siguientes por fin coincidan en qué día es en realidad.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
La ambigüedad que elimina
Pídale a diez personas que escriban la fecha de hoy y obtendrá diez respuestas: día-mes-año, mes-día-año, años de dos dígitos, fechas escritas con el nombre del mes, fechas separadas por puntos en lugar de barras. La mayoría de las veces el contexto resuelve la ambigüedad para un lector humano, pero el código no tiene contexto, y "01/02/2025" se convierte silenciosamente en el día equivocado en un sistema que asumió la otra convención. La api normalizar fechas existe porque ese error silencioso es mucho más peligroso que un fallo evidente.
Qué devuelve
Envía la fecha tal como fue escrita y la respuesta es una fecha u hora normalizada en ISO-8601, el formato definido justo para esto: sin ambigüedad, ordenable como texto plano y entendido por prácticamente cualquier lenguaje de programación y base de datos sin librería de conversión. Cuando una cadena es genuinamente ambigua, la respuesta lo refleja en lugar de adivinar en silencio, porque una suposición equivocada disfrazada de certeza es peor que no tener respuesta.
Cómo funciona la solicitud y el precio
Envía un POST a /data/normalize-dates y la llamada devuelve un task_id de inmediato; el resultado normalizado llega a su webhook firmado o mediante un enlace firmado válido por 24 horas al terminar el proceso. El precio es fijo, $0.002 por solicitud, publicado y fácil de calcular, y un trabajo que falla se reintenta tres veces antes de mostrar un error claro, sin cobrarse nunca.
Por qué ISO-8601 se volvió la respuesta
Antes de que existiera el estándar internacional, cada sistema inventaba su propia convención de fecha, e integrar dos de ellos significaba adivinar cuál era correcta según si un número era plausible como mes. ISO-8601 resolvió eso definiendo un solo orden, de año a día, sin ambigüedad y sin depender de la configuración regional, y por eso se volvió el formato que usa internamente casi cualquier API o base de datos seria, incluso cuando la entrada nunca lo será.
Dónde encaja en un flujo de datos
La normalización de fechas es el tipo de paso que se paga solo la primera vez que un formulario, una página extraída o una exportación heredada envían una fecha que su sistema no esperaba, así que encaja naturalmente justo después de la ingesta y antes de que algo toque una base de datos o un sistema de calendario. El acceso requiere saldo prepago, lo que mantiene el endpoint rápido y libre de tráfico abusivo. Este endpoint está activo ahora.
Qué puede hacer con ella
Limpieza de un dataset extraído
Un equipo de investigación normaliza fechas de publicación extraídas de decenas de sitios de noticias, cada uno con su propio formato, en un solo campo ISO-8601 consistente para ordenar y analizar.
Importación de proveedores internacionales
Una plataforma de comercio electrónico normaliza fechas de pedidos que llegan de proveedores en distintos países, para que los formatos día-mes y mes-día nunca vuelvan a intercambiarse en silencio.
Migración de un sistema heredado
Un proyecto de migración normaliza fechas de nacimiento guardadas como texto libre en una base de datos de décadas, antes de cargarlas en un esquema que exige un tipo de fecha estricto.
Limpieza de envíos de formularios
Un producto SaaS normaliza fechas escritas libremente en un campo de texto por usuarios de distintas regiones antes de guardarlas, evitando el error clásico de leer mal un año de dos dígitos.
Preguntas frecuentes
¿Cómo interpreto una fecha en texto con una API?
Envíe un POST con la fecha en bruto a /data/normalize-dates. La api normalizar fechas devuelve un task_id de inmediato y entrega el resultado en ISO-8601 a su webhook o a un enlace firmado al terminar el proceso.
¿Esta API es gratis?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿En qué formato devuelve las fechas?
Las fechas se devuelven en ISO-8601, el formato de año a día que se ordena correctamente como texto plano y que entienden de forma nativa prácticamente todos los lenguajes y bases de datos.
¿Puede manejar años de dos dígitos y formatos ambiguos?
Aplica heurísticas cuidadosas a los formatos ambiguos más comunes, pero una cadena con señales genuinamente contradictorias se reporta como ambigua en lugar de resolverse en silencio con una suposición.
¿Soporta fechas escritas con el nombre del mes o en otros idiomas?
Sí, las fechas escritas con el nombre del mes en formatos comunes se reconocen y normalizan igual que los formatos numéricos.
¿Puedo normalizar muchas fechas en lote?
Sí, puede enviar lotes de cadenas de fecha, cada solicitud se procesa de forma asíncrona y el conjunto normalizado completo se entrega junto una vez listo.
¿La API Normalizar Fechas ya está activa?
Sí, este endpoint está activo hoy al precio publicado de $0.002 por solicitud.
¿Qué pasa con mis datos después de normalizarlos?
Las cadenas enviadas y el resultado normalizado se eliminan tras la ventana de retención y jamás se usan para entrenar nada. La entrega es por webhook firmado o por un enlace firmado válido por 24 horas.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/normalize-dates \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/data/normalize-dates", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/normalize-dates",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/normalize-dates", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/normalize-dates", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.normalize_dates",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |