c# – Java中DateTime.FromOADate()的等价物(Java中的日期时间为double)

c# – Java中DateTime.FromOADate()的等价物(Java中的日期时间为double),第1张

概述C#有一个DateTime.FromOADate()方法. 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;v @H_404_0@ @H_404_0@ C#有一个DateTime.FromOADate()方法.

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)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存