Java 为什么DurationFormatUtils忽略格式中的年份?

Java 为什么DurationFormatUtils忽略格式中的年份?,java,apache-commons,duration,Java,Apache Commons,Duration,我有以下代码: return DurationFormatUtils.formatDuration(2034430000000L, yyyy-MM-dd_HH:mm:ss.SSS) 结果是:0000-00-23546_15:26:40.000 为什么一年和几天是0,那么多天 因为文档上这么说: 从文档中: 此方法使用格式模式的天和更低字段格式化持续时间。不使用月份或更大的月份 原因是当你谈论持续时间时,一个月有多长?一年有多长?一个月是一个可变的天数,就像一年一样。现在,如果这些持续时间被锚定

我有以下代码:

return DurationFormatUtils.formatDuration(2034430000000L, yyyy-MM-dd_HH:mm:ss.SSS)
结果是:
0000-00-23546_15:26:40.000


为什么一年和几天是0,那么多天

因为文档上这么说:

从文档中:

此方法使用格式模式的天和更低字段格式化持续时间。不使用月份或更大的月份

原因是当你谈论持续时间时,一个月有多长?一年有多长?一个月是一个可变的天数,就像一年一样。现在,如果这些持续时间被锚定,这样的事情是有意义的;在这些情况下,这就是Joda Time所说的周期


但一般来说,持续时间只有毫秒数,所以月和年是没有意义的。

因为文档中这样说:

从文档中:

此方法使用格式模式的天和更低字段格式化持续时间。不使用月份或更大的月份

原因是当你谈论持续时间时,一个月有多长?一年有多长?一个月是一个可变的天数,就像一年一样。现在,如果这些持续时间被锚定,这样的事情是有意义的;在这些情况下,这就是Joda Time所说的周期


但一般来说,一个持续时间只有几毫秒,所以月和年真的没有意义。

这是什么语言/框架/等等?…你认为这个月在持续时间中有什么意义?从2月1日到3月1日,直观上是1个月,没有天数;但是从10月1日到10月31日,它不到一个月,但仍然比第一个持续时间长。根据这个,它看起来像Java:这是什么语言/框架/等等?…你认为这个月在持续时间内有什么意义?从2月1日到3月1日,直观上是1个月,没有天数;但从10月1日到10月31日,这段时间不到一个月,但仍然比第一段时间长。根据这段时间,它看起来像Java:@TomaszNurkiewicz感谢对链接的原始编辑;不过,我不得不扩展答案;希望你的编辑得到好评。绝对没问题,我不介意。我很高兴答案有所改善,不管是谁做的+顺便说一句@Ray:是的,你说得对。我知道了。很抱歉问了这个基本问题,不必为此道歉。很容易忘记看文件。我可能应该在我的回答中带着微笑。:)@TomaszNurkiewicz感谢对链接的原始编辑;不过,我不得不扩展答案;希望你的编辑得到好评。绝对没问题,我不介意。我很高兴答案有所改善,不管是谁做的+顺便说一句@Ray:是的,你说得对。我知道了。很抱歉问了这个基本问题,不必为此道歉。很容易忘记看文件。我可能应该在我的回答中带着微笑。:)