我知道这可能是一个非常愚蠢的问题,但是我想知道是否有一种方法可以从另一个日期时间中减去本地日期时间,或者如果没有,将localDateTime转换为日期时间,然后从那里减去。
我需要能够计算出记录foo的开始和记录条的开始之间的日期时间差(这也是Foo的结束)
我对java比较陌生,为了简单起见,我希望能够保持它大致相同的布局,而不是必须从秒等转换。
如果不能选择添加和减去LocalDateTime,我知道一旦我在dateTime中,我就可以使用以下命令减去它们:
Period diff = new Period(start, end);由于数据的目的,我需要同时保持日期和时间,以便这项工作,正如前面提到的,我希望保持相当简单,这样就不需要在秒之间转换回日期。
我的问题实际上只是让它以一种可接受的格式,正如我所说的,作为一个整体,我对java和面向对象相当陌生,所以请不要因为这个看似简单的问题而嘲笑我。
谢谢,
乔尼
发布于 2016-11-09 02:20:22
为什么不直接使用LocalDateTime作为参数类型呢?
LocalDateTime start = new LocalDateTime(2016, 10, 4, 17, 45);
LocalDateTime end = LocalDateTime.now();
PeriodType ptype = PeriodType.yearMonthDayTime();
Period diff = new Period(start, end, ptype);另请参阅API of Joda-Time。您不需要强制转换为DateTime。
发布于 2016-11-08 23:52:36
这个问题是关于Joda-Time的,而不是关于Java 8的,问题并不是很清楚。无论如何,这个答案是关于Java 8的,因此没有直接回答这个问题。不过,如果有人想使用Java8,我认为这是一个合适的答案。
您可能应该检查java.time.Duration类。
LocalDateTime from = ... ;
LocalDateTime to = ... ;
Duration duration = Duration.between(from, to);如果你真的想要获得一个Period,它仍然是相当容易的:
LocalDateTime from = ... ;
LocalDateTime to = ... ;
Period period = Period.between(from.toLocalDate(), to.toLocalDate());https://stackoverflow.com/questions/40490323
复制相似问题