Joda时间,期间到总millis

时间:2012-03-08 21:34:46

标签: java jodatime

我正在尝试从Period对象实例获取毫秒数( millis字段)。我尝试了多次转换,因为我找不到任何方法可以轻松实现。

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

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

3 个答案:

答案 0 :(得分:16)

你不能直接从Period获得毫秒数,因为像月份和年份这样的字段在毫秒数方面是可变的。

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

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

toDurationFrom的{​​{3}}说:

  

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

     

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

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

答案 1 :(得分:2)

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

e.g。从现在

获得毫克
 DateTime start = new DateTime();  //NOW
 DateTime end = start.plus(<your period>);
 long millis = end.getMillis() - start.getMillis();

答案 2 :(得分:1)

使用Joda时间2.3,它是:

toStandardDuration().getMillis()