我写信,要求日期为十进制格式的文件:十进制格式的日期时间在Java或乔达
2007-04-24T13:18:09
成为39196.554270833331000
没有人有时间格式,将做到这(十进制时间是什么VB/Office等使用)?
Basic代码是这样如下:
final DateTime date = new DateTime(2007, 04, 24, 13, 18, 9, 0, DateTimeZone.UTC);
double decimalTime = (double) date.plusYears(70).plusDays(1).getMillis()/(Days.ONE.toStandardDuration().getMillis())); //=39196.554270833331000.
对于上面的示例。我开始使用DateTimePrinter来做到这一点,但现在太难了(我没有连接joda源代码,所以我不能轻松获得想法))。
注意:十进制时间是自1900年以来的天数 - 。代表部分日子。 2.6666666将在1900年1月2日下午4点
呃...我的印象是十进制时间是自1900年以来的天数,而不是1970年:http://support.microsoft.com/kb/214094 – Powerlord 2009-04-13 21:20:47
良好的捕获 - 这就是为什么plusYears(70)是否有 - 将millis“转换”为1900年而不是1970年。(我刚刚读了我的代码错误) – Stephen 2009-04-15 22:29:37