#524 · Herramienta para desarrolladores

Decodificador de timestamp ULID

Extrae la parte temporal de un ULID de 26 caracteres y la convierte a fecha UTC, milisegundos Unix y componentes legibles. Es útil para revisar orden cronológico, investigar registros y confirmar si un identificador ULID corresponde al intervalo esperado.

Datos de entrada

ULID, uno por línea
Espacio publicitario

Cómo usar esta herramienta para desarrolladores

  1. Pega ULID canónicos de 26 caracteres, uno por línea.
  2. Ejecuta el decodificador.
  3. Compara la fecha ISO y el epoch en milisegundos con el evento que estás investigando.
  4. Exporta la tabla si necesitas cruzarla con otros logs.

Qué hace esta herramienta para desarrolladores

Los primeros 10 caracteres de ULID codifican un timestamp de 48 bits en milisegundos Unix usando Base32 de Crockford. Los 16 caracteres restantes representan aleatoriedad y no se interpretan como fecha.

Se rechazan caracteres fuera del alfabeto ULID y valores cuyo primer carácter exceda el rango permitido para 128 bits.

El timestamp proviene del generador del ULID. Un reloj mal configurado puede producir una fecha válida pero incorrecta respecto al evento real.

Ejemplo

Entrada

01ARZ3NDEKTSV4RRFFQ69G5FAV

Salida esperada

01ARZ3NDEKTSV4RRFFQ69G5FAV
ISO: 2016-07-30T23:54:10.259Z
Epoch ms: 1469922850259

Casos de uso

  • Ordenar eventos por ULID.
  • Investigar IDs presentes en logs.
  • Verificar migraciones de UUID a ULID.
  • Detectar identificadores generados con relojes anómalos.

Consejos para obtener resultados fiables

  • Usa la forma canónica en mayúsculas o minúsculas.
  • No confundas orden lexicográfico con garantía de orden bajo concurrencia.
  • Contrasta la hora con la zona UTC mostrada.
  • Valida el reloj del servicio si aparecen fechas futuras o muy antiguas.

Detalles del procesamiento

Cada carácter de los primeros 10 aporta 5 bits Base32. El acumulador se limita al valor temporal ULID permitido y se convierte directamente a Date en JavaScript.

No verifica monotonicidad entre ULID ni autenticidad del identificador. Tampoco intenta interpretar los 80 bits de aleatoriedad como información semántica.

Preguntas frecuentes

¿Cómo sacar la fecha de creación de un ULID?

Decodifica los primeros 10 caracteres Base32 para obtener el timestamp en milisegundos Unix. La página hace esa conversión y muestra ISO UTC.

¿Un ULID siempre se puede ordenar por fecha como texto?

El formato está diseñado para ordenar lexicográficamente por timestamp, pero varios ULID generados en el mismo milisegundo dependen de la parte aleatoria o del algoritmo monotónico usado.

¿Qué caracteres no se permiten en un ULID?

ULID utiliza Base32 de Crockford y excluye caracteres ambiguos como I, L, O y U.

¿El timestamp ULID está en segundos o milisegundos?

Está expresado en milisegundos Unix dentro de un campo de 48 bits.

¿Puede un ULID válido contener una fecha incorrecta?

Sí. La sintaxis puede ser válida aunque el reloj del sistema que generó el ULID estuviera adelantado o atrasado.

Módulos de procesamiento

MóduloFunción
Validador CrockfordComprueba longitud y alfabeto ULID.
Decodificador temporalConvierte los primeros 10 caracteres a milisegundos.
Fecha ISOPresenta UTC y epoch para correlación con logs.

Explorar la categoría

Más utilidades de identificadores, hashes y seguridad en Hash, ID y seguridad.