Java Joda时间,周期到总毫秒
我试图从Period对象实例获取毫秒总数(不是毫秒字段)。我尝试了多次转换,因为我找不到任何方法可以轻易地给出它 有没有人需要它并设法找回它Java Joda时间,周期到总毫秒,java,jodatime,Java,Jodatime,我试图从Period对象实例获取毫秒总数(不是毫秒字段)。我尝试了多次转换,因为我找不到任何方法可以轻易地给出它 有没有人需要它并设法找回它 (我的补丁需要这个来计算负周期;负毫秒=负周期。)你不能直接从周期中获取毫秒,因为月份和年份等字段是以毫秒为单位变化的 为了实现这一点,您需要提供一个“基线”瞬间,Period可以从中计算实际毫秒持续时间 例如,Period.toDurationFrom和Period.ToDuration方法采用这样一个基线瞬间,并计算持续时间对象,然后可以获得毫秒 fo
(我的补丁需要这个来计算负周期;负毫秒=负周期。)你不能直接从
周期中获取毫秒,因为月份和年份等字段是以毫秒为单位变化的
为了实现这一点,您需要提供一个“基线”瞬间,Period
可以从中计算实际毫秒持续时间
例如,Period.toDurationFrom
和Period.ToDuration
方法采用这样一个基线瞬间,并计算持续时间
对象,然后可以获得毫秒
fortoDurationFrom
说明:
获取此时段相对于开始瞬间的总毫秒持续时间。
此方法将时段添加到指定的瞬间以计算持续时间
由于时段的持续时间不同,必须提供瞬间。例如,由于月份的长度不同,1个月的周期可能在相当于28到31天的毫秒之间变化。类似地,在夏令时切换时,一天可能会有所不同,通常在23到25小时之间
因此,您需要为您的应用程序选择适当的基线时刻。如果您想从特定的时间获取毫秒,可以使用DateTime类的加号()或减号()方法
e、 g.立即从获取毫秒数
DateTime start = new DateTime(); //NOW
DateTime end = start.plus(<your period>);
long millis = end.getMillis() - start.getMillis();
DateTime start=newdatetime()//全国妇女组织
DateTime end=start.plus();
long millis=end.getMillis()-start.getMillis();
使用Joda time 2.3,它是:
toStandardDuration().getMillis()
明白了:DateTime零=新的DateTime(0);long millis=period.toDurationFrom(零).getMillis()@Drorweis:这只在相对较短的时间内有效。如果你开始使用超过一个月的周期,那么这可能会给你一个扭曲的结果。我已经测试过了。。到目前为止看起来不错。尽管如此,我还是会留意的。谢谢!;)<代码>toStandardDuration()