3

我对 Perl 语言很陌生。如何转换UUID为日期格式2011-04-22

例如,我有这样的 UUID

118ffe80-466b-11e1-b5a5-5732cf729524.

如何将其转换为日期格式?

4

2 回答 2

4

模块UUID::Tiny有一个名为 time_of_UUID() 的方法,它可能会有所帮助:

time_of_UUID()

This function accepts UUIDs and UUID strings. 
Returns the time as a   floating point value, so use int() 
to get a time() compatible value.

Returns undef if the UUID is not version 1.

my $uuid_time = time_of_UUID($uuid);

RFC4122的时间戳部分也可以补充关于 UUID 的Wikipedia文章。

于 2013-02-28T05:03:45.047 回答
2

也许这个 javascript API 可以帮助您将 UUID 转换为日期格式,

此 API 将 UUID v1 转换为 1970-01-01 的秒

UUID_to_Date



你们都需要:

    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 );
    };


例子:

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