Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Joda时间,周期到总毫秒_Java_Jodatime - Fatal编程技术网

Java Joda时间,周期到总毫秒

Java Joda时间,周期到总毫秒,java,jodatime,Java,Jodatime,我试图从Period对象实例获取毫秒总数(不是毫秒字段)。我尝试了多次转换,因为我找不到任何方法可以轻易地给出它 有没有人需要它并设法找回它 (我的补丁需要这个来计算负周期;负毫秒=负周期。)你不能直接从周期中获取毫秒,因为月份和年份等字段是以毫秒为单位变化的 为了实现这一点,您需要提供一个“基线”瞬间,Period可以从中计算实际毫秒持续时间 例如,Period.toDurationFrom和Period.ToDuration方法采用这样一个基线瞬间,并计算持续时间对象,然后可以获得毫秒 fo

我试图从Period对象实例获取毫秒总数(不是毫秒字段)。我尝试了多次转换,因为我找不到任何方法可以轻易地给出它

有没有人需要它并设法找回它


(我的补丁需要这个来计算负周期;负毫秒=负周期。)

你不能直接从
周期中获取毫秒,因为月份和年份等字段是以毫秒为单位变化的

为了实现这一点,您需要提供一个“基线”瞬间,
Period
可以从中计算实际毫秒持续时间

例如,
Period.toDurationFrom
Period.ToDuration
方法采用这样一个基线瞬间,并计算
持续时间
对象,然后可以获得毫秒

for
toDurationFrom
说明:

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

由于时段的持续时间不同,必须提供瞬间。例如,由于月份的长度不同,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()