首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java从LocalDateTime栏中减去LocalDateTime foo

Java从LocalDateTime栏中减去LocalDateTime foo
EN

Stack Overflow用户
提问于 2016-11-08 23:08:59
回答 2查看 20.8K关注 0票数 11

我知道这可能是一个非常愚蠢的问题,但是我想知道是否有一种方法可以从另一个日期时间中减去本地日期时间,或者如果没有,将localDateTime转换为日期时间,然后从那里减去。

我需要能够计算出记录foo的开始和记录条的开始之间的日期时间差(这也是Foo的结束)

我对java比较陌生,为了简单起见,我希望能够保持它大致相同的布局,而不是必须从秒等转换。

如果不能选择添加和减去LocalDateTime,我知道一旦我在dateTime中,我就可以使用以下命令减去它们:

代码语言:javascript
复制
Period diff = new Period(start, end);

由于数据的目的,我需要同时保持日期和时间,以便这项工作,正如前面提到的,我希望保持相当简单,这样就不需要在秒之间转换回日期。

我的问题实际上只是让它以一种可接受的格式,正如我所说的,作为一个整体,我对java和面向对象相当陌生,所以请不要因为这个看似简单的问题而嘲笑我。

谢谢,

乔尼

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-09 02:20:22

为什么不直接使用LocalDateTime作为参数类型呢?

代码语言:javascript
复制
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

票数 7
EN

Stack Overflow用户

发布于 2016-11-08 23:52:36

这个问题是关于Joda-Time的,而不是关于Java 8的,问题并不是很清楚。无论如何,这个答案是关于Java 8的,因此没有直接回答这个问题。不过,如果有人想使用Java8,我认为这是一个合适的答案。

您可能应该检查java.time.Duration类。

代码语言:javascript
复制
LocalDateTime from = ... ;
LocalDateTime to = ... ;
Duration duration = Duration.between(from, to);

如果你真的想要获得一个Period,它仍然是相当容易的:

代码语言:javascript
复制
LocalDateTime from = ... ;
LocalDateTime to = ... ;
Period period = Period.between(from.toLocalDate(), to.toLocalDate());
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40490323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档