快捷搜索: 王者荣耀 脱发

excel中十六进制Unix时间戳转换为日期

记录下使用的一个在excel中转换unix时间戳的计算方式。 原始数据一般保存在csv文件中,且以16进制的格式。 在看原始数据分析的问题时候,需要通过计算器先把十六进制转为十进制,再使用unix时间戳转换工具转换,步骤繁杂。 本文分享一个在excel中转换十六进制unix时间戳的计算方法。 下文分步骤讲解,并在文末给出终极转换公式。

1.原始数据格式,32位unix时间戳被分成了四个字节分布于四个连续的单元格内; 2.将四个单元格合并至一个单元格内,合并单元格内容使用&; 合并后的结果如下所示: 3、上面已经得到原始32位的十六进制格式Unix时间戳了,将十六进制转为十进制,使用HEX2DEC函数; 转换结果如下所示: 4、excel中没有直接将Unix时间戳转换函数,因此,这里需要计算一下,计算公式如下所示,其中t为unix时间戳十进制数:

( t + 8 ∗ 3600 ) / 86400 + 70 ∗ 365 + 19 (t+8*3600)/86400+70*365+19 (t+8∗3600)/86400+70∗365+19 5、上述计算出来是一个数值,而不是日期格式,因此还需要将单元格格式转为日期格式,年月日+时分秒,自定义数字类型:yyyy/m/d h:mm:ss,格式设置如下图所示: 6、最终得到了转换后的日期格式。 7、整合后的公式如下所示:

(HEX2DEC(A1&B1&C1&D1)+8*3600)/86400+70*365+19

其中的A1 B1 C1 D1需要替换为实际的单元格位置。 8、方式二,使用偏移量,只使用一个单元格的位置:

(HEX2DEC(A1&OFFSET(A1, 0, 1)&OFFSET(A1, 0, 2)&OFFSET(A1, 0, 3))+8*3600)/86400+70*365+19

只需要更改其中A1,即出现的首个单元格位置就可以了。

经验分享 程序员 微信小程序 职场和发展