Joda时间,期间到总millis

我试图从Period对象实例中获取Milliseconds( 而不是 millis字段)的总量 。 我尝试过多次转换,因为我找不到任何方法可以轻松实现。

有没有人需要它并设法检索它?

(我需要这个补丁,找出一个负期;负毫秒=负期。)

您无法直接从句点获取毫秒数,因为像月份和年份这样的字段在毫秒数方面是可变的。

为了使这项工作,您需要提供一个“基线”瞬间, Period可以从中计算实际的毫秒持续时间。

例如, Period.toDurationFromPeriod.toDurationTo方法采用这样的基线瞬间,并计算Duration对象,然后可以获得millis。

来自toDurationFrom的Javadoc说:

获取此时间段相对于开始时刻的总毫秒持续时间。 此方法将周期添加到指定的时刻以计算持续时间。

必须提供瞬间,因为一段时间的持续时间会有所不同。 例如,由于长度不同的月份,1个月的时间段可以在28到31天之间变化,以毫秒为单位。 同样,每天可以在夏令时切换时变化,通常在23到25小时之间。

因此,您需要为您的应用选择合适的基线时刻。

如果要从特定时间获取millis,可以使用DateTime类的plus()或minus()方法完成。

例如,从现在开始

  DateTime start = new DateTime(); //NOW DateTime end = start.plus(); long millis = end.getMillis() - start.getMillis();