我正在编写一个要求日期为十进制格式的文件:
2007-04-24T13:18:09
becomes39196.554270833331000
有没有人有时间格式化程序可以做到这一点(十进制时间是 VB/Office 等使用的时间)?
基本代码如下:
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 点
最佳答案
您可以创建一个格式化程序来输出当天的小数部分。您需要使用 DateTimeFormatterBuilder
手动构建模式。使用 appendFractionOfDay() 添加分数.
关于java - Java 或 Joda 中的十进制日期时间格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/293617/