Java中的DateTime.FromOADate()相当于什么?
这是我的C#代码:
var b = new byte[8];b[0] = 0x20;b[1] = 0x64;b[2] = 0xa8;b[3] = 0xac;b[4] = 0xb6;b[5] = 0x65;b[6] = 0xe4;b[7] = 0x40;var dbl = BitConverter.Todouble(b,0);var dt = DateTime.FromOADate(dbl);
这是输出:
2014-05-14T17:00:21
如何将此字节数组转换为java?
解决方法 您是否意识到您的二进制数据是 OLE Automation date值的二进制represantation?因此,您应该从数组中获取double值,而不是变长.
var b = new byte[8];b[0] = 0x20;b[1] = 0x64;b[2] = 0xa8;b[3] = 0xac;b[4] = 0xb6;b[5] = 0x65;b[6] = 0xe4;b[7] = 0x40;var dbl = BitConverter.Todouble(b,0);var dt = DateTime.FromOADate(dbl);Console.Writeline("{0:s}",dt);
结果是:
2014-05-14T17:00:21
我认为有效的问题应该是:Java中的DateTime.FromOADate()相当于什么?
答案是:
public static Date fromDoubletoDateTime(double OADate) { long num = (long) ((OADate * 86400000.0) + ((OADate >= 0.0) ? 0.5 : -0.5)); if (num < 0L) { num -= (num % 0x5265c00L) * 2L; } num += 0x3680b5e1fc00L; num -= 62135596800000L; return new Date(num);}@H_404_0@ 总结
以上是内存溢出为你收集整理的c# – Java中DateTime.FromOADate()的等价物(Java中的日期时间为double)全部内容,希望文章能够帮你解决c# – Java中DateTime.FromOADate()的等价物(Java中的日期时间为double)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)