原始格式:40E4F00000000000
第一步:16进制转double
TestDate = binascii.a2b_hex('40E4F00000000000')
date='TestDate='+"%f"%struct.unpack('!d',TestDate)[0]
print(date)
输出
TestDate=42880.000000
代表的是从1899年12月30日午夜起计算“日”数。
第二步:double转时间
dbltime="%f"%struct.unpack('!d',TestDate)[0]
timestamp=Decimal(dbltime)*24*3600-2209190400 #2209190400指的是1990年1月1日-1970年1月1日的时间秒数
time_local = time.localtime(timestamp)
dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)
print (dt)
输出
2017-05-25 00:00:00
Excel验证:




这篇博客记录了如何将16进制数值转换为日期的过程。首先,博主介绍了如何将16进制转化为double,这个double值代表从1899年12月30日起的天数。接着,博主解释了如何进一步将这个double值转换成日期,并通过Excel进行验证。

255

被折叠的 条评论
为什么被折叠?



