java - Java 或 Joda 中的十进制日期时间格式化程序

标签 java datetime formatting jodatime

我正在编写一个要求日期为十进制格式的文件:

2007-04-24T13:18:09 becomes 39196.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/

相关文章:

java - 在java中测试公式中的括号是否匹配,我的算法是否正确?

javascript - 在javascript中从字符串转换日期

svn - 格式化 svn 日志输出

java - IntelliJ IDEA 中的自定义 Maven 目标

java - 构建堆时间复杂度最坏情况与上限/严格上限

date - Flatpickr 和 Moment.js 意外的日期格式

python - Django DateTimeField() 导致 TypeError ('datetime.timedelta' 对象不可调用)

android - 在 Android 的 textview 中格式化文本项目符号的最简单方法

android - 在 EditText 中自动格式化电话号码

java - 在 applicationcontext.xml 中添加自定义过滤器类