Sam*_*Sam 14
这个lib(UUID_to_Date)非常简单快捷!仅使用本机String函数.也许这个Javascript API可以帮助您将UUID转换为日期格式,Javascript是简单的语言,这个简单的代码可以帮助为每种语言编写API.
此API将UUID v1从1970-01-01转换为秒
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 );
};
Run Code Online (Sandbox Code Playgroud)
var date_obj = get_date_obj( '8bf1aeb8-6b5b-11e4-95c0-001dba68c1f2' );
date_obj.toLocaleString( );// '11/13/2014, 9:06:06 PM'
Run Code Online (Sandbox Code Playgroud)
您可以使用CQL3中的unixTimestampOf或dateOf函数,或者您可以自己动手,艰难的方法:
时间被编码到UUID的前64位,但是它与其他一些部分交错,因此提取时间并不是非常直接的.
如果n是当时的整数表示,TimeUUID那么你可以像这样提取UNIX纪元:
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
Run Code Online (Sandbox Code Playgroud)
这段代码来自我的Ruby CQL3驱动程序,cql-rb,可以在这里找到:https://github.com/iconara/cql-rb/blob/master/lib/cql/time_uuid.rb
我使用了这个资源:http://www.famkruithof.net/guid-uuid-timebased.html,以及用于实现该代码的RFC.
使用uuid-time模块。
我在这里询问了 uuid 模块的维护者https://github.com/kelektiv/node-uuid/issues/297,他们向我指出了 uuid-time 模块https://www.npmjs.com/package/uuid-time
Nodejs 的 node-uuid 模块包含将 uuid v1 转换为时间戳的方法
| 归档时间: |
|
| 查看次数: |
7793 次 |
| 最近记录: |