如何将十六进制字符串(如0x63a4b534)转换为可读日期?代码尝试无效
十六进制时间戳转人类可读日期的正确方法
你的代码没效果,是因为Date构造函数不认"0x63a4b534"这种字符串格式。它只能解析标准日期字符串(比如"2022-12-25")或者毫秒级时间戳数值,而你传的十六进制字符串既不是标准日期格式,也不是数值类型的时间戳,所以解析失败。
正确的做法分两步:
- 把十六进制字符串转成十进制的时间戳数值
- 根据时间戳的单位(秒/毫秒)调整后,传入
Date构造函数
针对你的十六进制值0x63a4b534,具体代码如下:
// 把十六进制字符串转成十进制秒级时间戳 const seconds = parseInt("0x63a4b534", 16); // 转成Date需要的毫秒级时间戳,再生成日期 const readableDate = new Date(seconds * 1000).toLocaleDateString(); console.log(readableDate); // 输出对应本地时区的日期,比如"2022/12/25"
也可以写成一行简化版:
new Date(parseInt("0x63a4b534", 16) * 1000).toLocaleDateString();
补充说明:0x63a4b534转成十进制是1671991604,这是秒级时间戳(对应Unix时间,从1970年1月1日开始算的秒数),所以必须乘以1000转成毫秒,才能被Date正确识别。如果你的十六进制时间戳本身就是毫秒级的,就不用乘1000。
内容的提问来源于stack exchange,提问作者Furkan Öztürk
相关产品推荐
相关产品推荐

