首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得两个JodaTime LocalTime邮票之间的差异?

如何获得两个JodaTime LocalTime邮票之间的差异?
EN

Stack Overflow用户
提问于 2014-03-13 17:27:06
回答 2查看 9.1K关注 0票数 9

我使用JodaTime LocalTime是为了指定时间。怎样才能得到两次之间的分钟差值?

代码语言:javascript
复制
LocalTime startT = new LocalTime(6,30);
LocalTime endT = new LocalTime(12,15);

// LocalTime duration = this.endT.minusMinutes(startT);
// int durationMinutes = duration.getMinutes();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-13 19:01:43

如果你问

如何计算两次之间的分钟差值?

然后我会想到以下更直观的解决方案:

代码语言:javascript
复制
LocalTime startT = new LocalTime(6,30);
LocalTime endT = new LocalTime(12,15);
int minutes = Minutes.minutesBetween(startT, endT).getMinutes(); // 345m = 6h - 15m

表达式

代码语言:javascript
复制
Period.fieldDifference(startT, endT).getMinutes()

将只产生-15,这意味着不考虑小时差异,因此不会将小时转换为分钟。如果第二个表达式确实是你想要的,那么问题应该是这样的:

如何才能得到两个LocalTime-instances的分钟部分之间的差异?

针对Java-8进行了更新:

代码语言:javascript
复制
LocalTime startT = LocalTime.of(6,30);
LocalTime endT = LocalTime.of(12,15);

long minutes = ChronoUnit.MINUTES.between(startT, endT);

System.out.println(minutes); // output: 345

// Answer to a recommendation in a comment:
// Attention JSR-310 has no typesafety regarding units (a bad design choice)
// => UnsupportedTemporalTypeException: Unsupported unit: Minutes
minutes = Duration.between(startT, endT).get(ChronoUnit.MINUTES);
票数 17
EN

Stack Overflow用户

发布于 2014-03-13 17:41:56

如果我正确理解了你的问题,以下内容应该可以完成这项工作:

代码语言:javascript
复制
Period diff = Period.fieldDifference(startT, endT);
int minutes = diff.getMinutes();  
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22374151

复制
相关文章

相似问题

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