日期:2014-05-16  浏览次数:20869 次

将二进制转为日期格式
已知有如下二进制数据
55555555595BE440

请问如何转成以下时间格式
2014-02-20 19:00:00
------解决方案--------------------

------解决方案--------------------


55555555595BE440 没得转 他肯定中间加了什么了 这个转成long 有19位
------解决方案--------------------
除非你再给一个时间,否则无法单就一个数字的转换看出规律。
------解决方案--------------------
你这个1E9B6D55595BE440都不知道怎么突然就转为了2014-02-20 19:00:01,那实在是下不手的
------解决方案--------------------
你在找这个时间以后1分钟、1小时、1天的数据来看看。
------解决方案--------------------

你多给些时间呀,1天,一小时,一分钟的,
------解决方案--------------------
先转回16进制,再转
------解决方案--------------------
这个是MS定义的变态的日期类型中的一种, 参见 http://msdn.microsoft.com/en-us/library/82ab7w69(v=vs.110).aspx。

简单的说, 就是一个8字节的浮点数(double), 表示距1899年12月30日凌晨的天数。

比如 1E9B6D55595BE440 以浮点数格式化后为 41690.7916782407, 其DATE值所表示的日期即 (1899-12-30) + (41690.7916782407 days) = 2014-02-20 19:00:01
------解决方案--------------------
引用:
Quote: 引用:

这个是MS定义的变态的日期类型中的一种, 参见 http://msdn.microsoft.com/en-us/library/82ab7w69(v=vs.110).aspx。

简单的说, 就是一个8字节的浮点数(double), 表示距1899年12月30日凌晨的天数。

比如 1E9B6D55595BE440 以浮点数格式化后为 41690.7916782407, 其DATE值所表示的日期即 (1899-12-30) + (41690.7916782407 days) = 2014-02-20 19:00:01

真是长见识了,我想问下1E9B6D55595BE440是什么格式的,怎么转的


先转成字节1E9B6D55595BE440 =》HexToByte(string )=>BitConvert.ToDouble(byte[]);