Tiempo embebido en un ID
WebTodo se ejecuta en tu navegador: no se sube nada
Muchos ID no son aleatorios: son una marca de tiempo, un número de máquina y un contador empaquetados, para ser únicos y a la vez ordenables por fecha. Por eso una cadena como `018f3c9a-…` o `1234567890123456789` es en sí misma información de tiempo, solo que codificada. Aquí ese tiempo se vuelve a leer y se explica cómo llegó ahí: · UUID v7 — los primeros 48 bits son milisegundos Unix (que es justo lo que aporta v7 frente a v4) · UUID v1 / v6 — tics de 100 nanosegundos contados desde el 1582-10-15 · ULID — los 10 primeros caracteres Crockford Base32 son milisegundos · ObjectId de MongoDB — los primeros 4 bytes son segundos · Snowflake — milisegundos en los bits altos, pero el origen cambia según la plataforma · FILETIME de Windows — tics de 100 nanosegundos desde el 1601-01-01 ⚠️ El origen del Snowflake hay que elegirlo a propósito. El diseño de bits es igual en todas partes (la marca de tiempo desplazada 22 bits), pero el punto de partida no: Twitter usa el 2010-11-04 y Discord el 2015-01-01. Elegir mal no da error: devuelve una fecha verosímil que se va varios años, así que el origen y su procedencia se muestran en el resultado.
Funciones
- Reconoce UUID (v1/v3/v4/v5/v6/v7/v8), ULID, ObjectId de MongoDB, ID Snowflake y FILETIME de Windows
- Convierte el tiempo embebido a una fecha ISO 8601 y explica el diseño de bits
- ⚠️ UUID v1 guarda su marca de tiempo desordenada en la cadena (los 32 bits bajos primero, los 12 altos al final): leerla en orden da un número del todo erróneo — aquí se trata aparte
- ⚠️ Los Snowflake se leen con BigInt: por encima de 2^53 un Number pierde los bits de secuencia mientras la marca de tiempo (bits altos) sigue pareciendo correcta, así que el error queda oculto
- ⚠️ El origen del Snowflake es una elección explícita (Twitter / Discord / Instagram / época Unix), con su efecto indicado en el resultado
- ⚠️ Los ULID se comprueban contra la regla que casi todos los validadores se saltan: el primer carácter debe ser 0–7 (los dos bits sobrantes de una codificación de 130 bits deben ser cero, y cualquier valor mayor desborda los 128 bits). Una comprobación de longitud y alfabeto los deja pasar y decodifica una fecha a décadas de distancia
- Los ULID en minúsculas, o con I / L / O, se recuperan con las reglas de ambigüedad de Crockford (I y L valen 1, O vale 0) y se marcan como no canónicos
- Los campos del ObjectId se listan por separado — cuatro bytes de segundos, cinco de aleatoriedad por proceso y tres de contador — porque el orden dentro de un mismo segundo sale de esos últimos seis caracteres
- Los tipos sin marca de tiempo, como v4, lo dicen en vez de dejar la casilla en blanco
- Pega varios ID, uno por línea, agrupados por línea
Cómo se usa
- Pega uno o varios ID, uno por línea
- Si es un Snowflake, ajusta el origen con el que se generó
- El resultado da el tipo, el tiempo embebido y la explicación del diseño de bits
Preguntas frecuentes
- ¿Por qué no hay un único origen para Snowflake?
- Porque Snowflake es un diseño de bits (la marca de tiempo desplazada 22 bits, con máquina y secuencia en los bits bajos), no un formato estándar: cada plataforma eligió su propio origen. Twitter usa el 2010-11-04, Discord el 2015-01-01 e Instagram el 2011-08-24. El mismo número da una fecha verosímil bajo cualquiera de esos supuestos y nunca da error, por eso aquí te obliga a elegir y deja constancia de cuál elegiste.
- ¿Qué diferencia hay entre UUID v7 y v4?
- v4 es totalmente aleatorio y sin estructura; v7 pone milisegundos Unix en los primeros 48 bits, así que se ordena por fecha de creación. En una base de datos eso pesa: una clave primaria v4 reparte los puntos de inserción por todo el B-tree, mientras que v7 se acerca a la escritura secuencial. El precio es que v7 filtra su fecha de creación: si eso es sensible, no uses v7.
- ¿Por qué la marca de tiempo de UUID v1 no se puede leer en orden?
- Porque la especificación parte la marca de tiempo de 60 bits en tres trozos y coloca los 32 bits bajos primero: la cadena va `time_low` (32 bits), `time_mid` (16 bits) y luego `time_hi` (12 bits) compartiendo campo con el número de versión. Leerla como un entero en orden da un valor del todo erróneo que aun así parece una hora razonable y no da error. v6 existe precisamente para reordenar esos tres trozos con los bits altos delante.
- ObjectId y Snowflake llevan tiempo: ¿en qué se diferencian?
- Un ObjectId es el valor de 12 bytes de MongoDB: 4 bytes de segundos, 5 bytes de aleatoriedad por proceso y un contador de 3 bytes, con precisión de segundo. Un Snowflake es un entero de 64 bits con precisión de milisegundo, y los bits restantes se reparten entre máquina y secuencia. Por eso dos ObjectId creados en el mismo segundo no se pueden ordenar por su propio contenido, y dos Snowflake sí.
Herramientas relacionadas
Analizador de URL
WebDescompone una URL en esquema, host, puerto, ruta, parámetros y ancla, con cada parámetro en crudo y decodificado. Todo en tu navegador.
Analizador de UA
WebAnaliza un User-Agent: navegador, versión, sistema, tipo de dispositivo y motor, con las reglas que coinciden. Solo coincidencia de patrones.
Códigos de estado HTTP
WebConsulta un código de estado HTTP: significado, clase 1xx–5xx, usos típicos y trampas habituales. También busca por palabra clave. Todo local.
Tipos MIME
WebConsulta el tipo MIME a partir de una extensión, o la extensión por defecto de un tipo de medio. Solo los habituales. Todo en tu navegador.
Generador de .gitignore
WebGenera un .gitignore a partir de plantillas de lenguaje, framework, editor y sistema. Las secciones se fusionan y se quitan duplicados. Todo local.
Imagen a Base64
WebConvierte una imagen a Base64 o a data URL soltándola, eligiéndola o pegándola. Redimensiona y cambia de formato en local; nunca se sube nada.