uuidv4 node.js cassandra uuid helenus

node.js - uuidv4 - javascript uuid



¿Cómo extraer la marca de tiempo del UUID v1(TimeUUID) usando javascript? (3)

Puede usar las funciones unixTimestampOf o dateOf en CQL3, o puede hacerlo usted mismo, de la manera difícil:

El tiempo está codificado en los 64 bits superiores del UUID, pero está intercalado con algunas otras piezas, por lo que no es súper sencillo extraer un tiempo.

Si n es la representación entera de TimeUUID entonces puedes extraer la época de UNIX así:

n = (value >> 64) t = 0 t |= (n & 0x0000000000000fff) << 48 t |= (n & 0x00000000ffff0000) << 16 t |= (n & 0xffffffff00000000) >> 32 t -= 122192928000000000 seconds = t/10_000_000 microseconds = (t - seconds * 10_000_000)/10.0

este código es de mi controlador Ruby CQL3, cql-rb, y se puede encontrar en su totalidad aquí: https://github.com/iconara/cql-rb/blob/master/lib/cql/time_uuid.rb

Usé este recurso: http://www.famkruithof.net/guid-uuid-timebased.html , y el RFC para implementar ese código.

Uso el módulo Cassandra DB y Helenus para nodejs para operar con esto. Tengo algunas filas que contienen columnas TimeUUID. ¿Cómo obtener la marca de tiempo de TimeUUID en javascript?



¡esta lib ( UUID_to_Date ) es muy simple y rápida! solo usó la función de Cadena nativa. tal vez esta API de Javascript puede ayudarlo a convertir el formato de UUID a fecha, JavaScript es un lenguaje simple y este código simple puede ayudar a escribir API para cada idioma.

esta API convierte el UUID v1 en sec desde 1970-01-01

todos ustedes necesitan:

get_time_int = function (uuid_str) { var uuid_arr = uuid_str.split( ''-'' ), time_str = [ uuid_arr[ 2 ].substring( 1 ), uuid_arr[ 1 ], uuid_arr[ 0 ] ].join( '''' ); return parseInt( time_str, 16 ); }; get_date_obj = function (uuid_str) { var int_time = this.get_time_int( uuid_str ) - 122192928000000000, int_millisec = Math.floor( int_time / 10000 ); return new Date( int_millisec ); };

Ejemplo:

var date_obj = get_date_obj( ''8bf1aeb8-6b5b-11e4-95c0-001dba68c1f2'' ); date_obj.toLocaleString( );// ''11/13/2014, 9:06:06 PM''