我一直在尝试用Java读取二进制文件,二进制文件是用C#编写的。其中一些数据包含 DateTime 数据。
当 DateTime 数据将写入文件(以二进制形式)时,它DateTime.ToBinary();
在 C# 上使用。
为了读取 DateTime 数据,它将首先使用 将字节转换为长数据,BitConverter.ToInt64(byte[], 0)
然后使用 将其再次从 long 转换为 DateTime 数据DateTime.FromBinary(long)
。(所有这些都是用 C# 编写的)。
假设从字节转换后的长数据是 = -8586803256090942249,当将其转换为 DateTime 时,它将返回 = 3/17/2018 5:07:56 PM
现在,我正在尝试使用 Java 读取该二进制文件。而对于字节的数据转换成长的数据,我用这个代码:ByteBuffer.wrap(byte[]).order(ByteOrder.LITTLE_ENDIAN).getLong()
。
它将像 C# 一样返回精确的长数据值。但是,当我尝试将其从长数据转换为 Java 中的 DateTime 时,使用Date date = new Date(long)
,它将返回 = Sun May 06 19:04:17 WIB 272097407。
你能帮我解决这个问题的正确解决方案是什么吗?DateTime.FromBinary()
Java 中的 C#是否有任何等价物?还是我的代码错了?非常感谢您的所有回答。
肥皂起泡泡
相关分类