Java 如何减去两个joda日期时间?
我知道这不是“应该的工作方式”,但是:如果你有两个DateTime对象,用什么好方法减去它们?是否将它们转换为日期对象Java 如何减去两个joda日期时间?,java,datetime,jodatime,Java,Datetime,Jodatime,我知道这不是“应该的工作方式”,但是:如果你有两个DateTime对象,用什么好方法减去它们?是否将它们转换为日期对象 DateTime start = new DateTime(); System.out.println(start + " - doing some stuff"); // do stuff DateTime end = new DateTime(); Period diff = // end - start ??? System.out.println(end + " -
DateTime start = new DateTime();
System.out.println(start + " - doing some stuff");
// do stuff
DateTime end = new DateTime();
Period diff = // end - start ???
System.out.println(end + " - doing some stuff took diff seconds");
期间有:
(
ReadableInstant
是一个由DateTime
以及其他类实现的接口。)我认为您可以使用构造函数创建一个期间
,该构造函数包含两个DateTime
对象。取决于您希望获得的精度。您应该检查org.joda.time
包,并检查助手类,如Hours
,Days
,等等。这有帮助吗?
它显示了下面的示例
DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0);
// period of 1 year and 7 days
Period period = new Period(start, end);
// calc will equal end
DateTime calc = start.plus(period);
// able to calculate whole days between two dates easily
Days days = Days.daysBetween(start, end);
从您的示例中,您似乎希望以秒为单位计算差异,因此:
应该对你有帮助。@karmanaut-谢谢,以dup结尾。@karmanaut这个问题实际上没有涉及到同样的问题。它计算两个瞬间之间的天数,而不是从开始日期和结束日期到一个期间的一般方式。请参见:@ParkashKumar Good catch,间隔时间可能更适合此用途。
DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0);
// period of 1 year and 7 days
Period period = new Period(start, end);
// calc will equal end
DateTime calc = start.plus(period);
// able to calculate whole days between two dates easily
Days days = Days.daysBetween(start, end);
Seconds diff = Seconds.secondsBetween(start, end);