一、时间戳转成16进制字符串
JavaScript toString() 方法:把一个 Number 对象转换为一个字符串,并返回结果。
语法:NumberObject.toString(radix)
radix - 表示数字的基数,是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。
返回值:数字的字符串表示。例如,当 radix 为 2 时,NumberObject 会被转换为二进制值表示的字符串。
注意:当调用该方法的对象不是 Number 时抛出 TypeError 异常。
let timestamp = new Date().getTime()
console.log(timestamp) // 例如:1640843589105,单位是毫秒
// 转换成16进制字符串
let timestamp_hex = timestamp.toString(16)
console.log(timestamp_hex) // "17e09e635f1"
二、16进制字符串转成时间戳
JavaScript parseInt() 方法:解析一个字符串,并返回一个整数。
语法:parseInt(str, radix)
str - 必需。要被解析的字符串。
radix - 可选。指定要使用的数字系统的基数(从 2 到 36),例如 radix 为 16(十六进制)表示字符串中的数字应从十六进制数解析为十进制数。
当 radix 为 0,或没有设置该参数时,parseInt() 会根据 str 来判断数字的基数(详情看:JavaScript parseInt() 函数 | 菜鸟教程)。
let timestamp_hex = "17e09e635f1"
// 转换成时间戳
let timestamp = parseInt(timestamp_hex, 16)
console.log(timestamp) // 时间戳 1640843589105
let time = new Date(timestamp)
console.log(time) // 对应的日期:Thu Dec 30 2021 13:53:09 GMT+0800 (中国标准时间)
记录于2021-12-30。