Javascript 根据时间戳(作为编号)创建UUID

Javascript 根据时间戳(作为编号)创建UUID,javascript,timestamp,uuid,Javascript,Timestamp,Uuid,如何使用Javascript从时间戳编号创建UUID 是否存在任何现有的API?根据,UUID是一个128位的数字。Javascript数字是64位浮点数(),因此我假设您已经有了字符串形式的UUID数字 引用维基百科:“UUID由32个十六进制数字组成,以8-4-4-4-12的形式以连字符分隔的5组显示,总共36个字符(32位数字和4个连字符)。”JavascriptNumber的toString方法可以给定一个基数(十六进制为基数16)但是我们当然不能在这里使用Numbers 因此,您需要某

如何使用Javascript从时间戳编号创建UUID

是否存在任何现有的API?

根据,UUID是一个128位的数字。Javascript数字是64位浮点数(),因此我假设您已经有了字符串形式的UUID数字

引用维基百科:“UUID由32个十六进制数字组成,以8-4-4-4-12的形式以连字符分隔的5组显示,总共36个字符(32位数字和4个连字符)。”Javascript
Number
toString
方法可以给定一个基数(十六进制为基数16)但是我们当然不能在这里使用
Number
s

因此,您需要某种代码,可以首先处理128位数字,然后将其转换为十六进制。有各种各样的Java和Javascript库。只要找一个你喜欢的,也许可以作为指导。完成后,您将得到如下字符串:

var hexNum = "550e8400e29b41d4a716446655440000";
然后将不同的子字符串与
-
分隔符简单组合,就得到了UUID字符串:

var UUID = hexNum.substr(0, 8) + '-' +  hexNum.substr(8, 4) + '-' + 
  hexNum.substr(12, 4) + '-' + hexNum.substr(16, 4) + '-' + hexNum.substr(20)
更新:在撰写我的回复的过程中,原始问题被更新为询问如何从“时间戳编号”创建UUID。我不确定那是什么,可能是Unix时间戳,例如
Date.now()
的结果。由于UUID被认为是(实际上)唯一的,毫秒时间很难是唯一的,所以我认为在创建数字之前,您可能希望在数字中引入一些进一步的唯一性元素。即使您没有这样做,您仍然需要将64位
数字
转换为128位数字,再次使用某种BigDecimal或BigNumber库。

根据,UUID是128位数字。Javascript数字是64位浮点数(),因此我假设您已经有了字符串形式的UUID数字

引用维基百科:“UUID由32个十六进制数字组成,以8-4-4-4-12的形式以连字符分隔的5组显示,总共36个字符(32位数字和4个连字符)。”Javascript
Number
toString
方法可以给定一个基数(十六进制为基数16)但是我们当然不能在这里使用
Number
s

因此,您需要某种代码,可以首先处理128位数字,然后将其转换为十六进制。有各种各样的Java和Javascript库。只要找一个你喜欢的,也许可以作为指导。完成后,您将得到如下字符串:

var hexNum = "550e8400e29b41d4a716446655440000";
然后将不同的子字符串与
-
分隔符简单组合,就得到了UUID字符串:

var UUID = hexNum.substr(0, 8) + '-' +  hexNum.substr(8, 4) + '-' + 
  hexNum.substr(12, 4) + '-' + hexNum.substr(16, 4) + '-' + hexNum.substr(20)

更新:在撰写我的回复的过程中,原始问题被更新为询问如何从“时间戳编号”创建UUID。我不确定那是什么,可能是Unix时间戳,例如
Date.now()
的结果。由于UUID被认为是(实际上)唯一的,毫秒时间很难是唯一的,所以我认为在创建数字之前,您可能希望在数字中引入一些进一步的唯一性元素。即使没有,您仍然需要使用某种BigDecimal或BigNumber库将64位<代码>数字转换为128位数字。

您能提供更多信息吗?你说的时间戳号码是什么意思?正如我在回答中所解释的,这个问题现在还不是很清楚。你能提供更多的信息吗?你说的时间戳号码是什么意思?现在这个问题还不是很清楚,我在回答中已经解释过了。谢谢。我找到了一个很好的js代码来执行反向操作。我发现我的第一个操作不是从UUID到日期时间戳。我正在处理另一种格式。但是,谢谢你的定义。:)谢谢我找到了一个很好的js代码来执行反向操作。我发现我的第一个操作不是从UUID到日期时间戳。我正在处理另一种格式。但是,谢谢你的定义。:)