Convertidor de timestamp JavaScript a ISO 8601
Convierta un timestamp JavaScript en una fecha y hora ISO 8601 precisa sin depender de la hora actual, la configuración regional del navegador ni el reloj del servidor.
Ejecutar — gratis
Introduzca un entero en milisegundos desde la época Unix y obtendrá la fecha UTC correspondiente, con tres dígitos de precisión y una Z final. El cálculo es determinista: un mismo número siempre genera la misma cadena. También admite valores negativos anteriores a 1970 y todo el intervalo temporal de JavaScript, por lo que resulta útil para registros, migraciones y pruebas reproducibles.
Introduzca milisegundos, no segundos
Los timestamps de JavaScript suelen contar milisegundos desde 1970-01-01T00:00:00.000Z, mientras que muchas herramientas Unix y API cuentan segundos. Esa diferencia de mil es la causa más habitual de resultados inesperados. Pegue el valor numérico tal como lo devuelve JavaScript, sin comillas, separadores, sufijos ni expresiones. El conversor acepta enteros porque una cadena ISO con tres decimales representa milisegundos completos con exactitud. Rechaza decimales, valores no finitos y texto numérico, en lugar de redondear o adivinar. Esta validación estricta evita que una entrada incorrecta produzca una fecha creíble pero falsa. Si el origen usa segundos, multiplique el valor por mil antes de enviarlo, siempre que siga dentro del intervalo admitido. El campo timestamp_ms repite el número aceptado para mantener una relación explícita entre el dato original y su representación formateada.
Interprete el resultado UTC determinista
El resultado es una fecha y hora ISO 8601 en UTC. La Z final indica desplazamiento cero respecto de UTC, no la zona horaria local de quien realiza la solicitud. Por ello, horas, minutos, segundos y milisegundos permanecen estables entre regiones, cambios de horario y configuraciones de ejecución. El cálculo no consulta el reloj ni utiliza el objeto Date de JavaScript. Divide el timestamp en un día UTC completo y una hora no negativa dentro de ese día, y después transforma el recuento mediante aritmética gregoriana acotada. Esto es esencial para crear datos de prueba o investigar incidencias: la misma entrada no cambia por la configuración regional o la fecha de ejecución. Los valores negativos usan división por suelo, de modo que el milisegundo anterior a la época Unix pertenece correctamente a 1969-12-31. Los años externos al intervalo 0000–9999 emplean el formato ampliado con signo.
Use la salida con seguridad
Utilice el campo iso cuando una etiqueta UTC canónica sea más legible que un número de época: registros estructurados, consolas, auditorías, JSON de prueba, migraciones o respuestas API. Conservar tanto el número original como la cadena ayuda a detectar confusiones entre segundos y milisegundos. Esta operación formatea; no localiza zonas horarias, no infiere dónde ocurrió un evento ni crea una presentación regional. Realice esas tareas por separado y conserve UTC como formato de transporte y comparación. El intervalo admitido coincide con el límite habitual de JavaScript: más o menos 8,640,000,000,000,000 milisegundos. Se rechazan valores externos, NaN, Infinity, ausencias, cadenas y fracciones. Ninguna red, fuente aleatoria, configuración regional ni lectura de la hora afecta a la respuesta. Por tanto, puede llamar a la API por $0.002 o usar el navegador y obtener siempre una salida reproducible.
Qué puede hacer con ella
Leer registros de aplicaciones
Convierta un campo opaco en milisegundos en un instante UTC comparable entre servicios y regiones.
Crear pruebas estables
Genere un valor ISO canónico desde un timestamp fijo sin que el reloj ni la zona horaria alteren la prueba.
Auditar migraciones temporales
Conserve el número original junto a su forma ISO mientras revisa transformaciones de bases de datos o API.
Preguntas frecuentes
¿La entrada usa segundos o milisegundos?
Milisegundos. Los timestamps JavaScript cuentan milisegundos desde la época Unix; multiplique primero por 1,000 los valores en segundos.
¿Utiliza mi zona horaria local?
No. La salida siempre está en UTC, como indica la Z final, y no depende del navegador ni del servidor.
¿Puede convertir fechas anteriores a 1970?
Sí. Introduzca un timestamp negativo y recibirá la fecha UTC gregoriana correspondiente.
¿Por qué rechaza valores fraccionarios?
El contrato representa milisegundos enteros exactos y emite tres decimales; rechazarlos evita redondeos silenciosos.
¿Cuánto cuesta?
Cada conversión mediante API cuesta $0.002. La ejecución en el navegador también permite conversiones interactivas deterministas.
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/date/js-timestamp-to-iso \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"timestamp":1717245296789}'const res = await fetch("https://api.kit.forhosting.com/date/js-timestamp-to-iso", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"timestamp": 1717245296789
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/js-timestamp-to-iso",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"timestamp": 1717245296789
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/js-timestamp-to-iso", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"timestamp":1717245296789}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"timestamp":1717245296789}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/js-timestamp-to-iso", 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
{
"timestamp": 1717245296789
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.js_timestamp_to_iso",
"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.
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. |