实施例:如何使用LocalTime在java中总结2个特定时间?
LocalTime time1 = LocalTime.of(12, 30);
LocalTime time2 = LocalTime.of(8, 30);
time1 + time2 // Doesn't work.
time1.plus(time2) // Doesn't work.
因此,我想在格式两次(12:30 + 8:30 = 21:00)的总和(小时:分钟)。
其他建议?
实施例:如何使用LocalTime在java中总结2个特定时间?
LocalTime time1 = LocalTime.of(12, 30);
LocalTime time2 = LocalTime.of(8, 30);
time1 + time2 // Doesn't work.
time1.plus(time2) // Doesn't work.
因此,我想在格式两次(12:30 + 8:30 = 21:00)的总和(小时:分钟)。
其他建议?
您正试图添加两个LocalTime
变量。作为一个概念这是错误的。你的时间2不应该是LocalTime
,它应该是Duration
。一段时间增加的时间给你另外一个时间。从时间中减去一个时间会给你一个持续时间。这是很好的和合乎逻辑的。两次加在一起不是。
有些黑客可能会将您的时间转换为持续时间,但我强烈建议您不要这样做。相反,重构您的代码,以便time2首先是Duration
。
伟大的解释! – 2015-06-27 15:52:06
Mike Nakis的答案并非如此。
上面的这句话我的不真实。我已经检查过并且只有Java 8有LocalTime.of
,所以Mike Nakis的回答是完全正确的。请看他的答案。
[本部分仍保留。在约达文库]
情况LocalTime
我将解释:
在约达-的持续时间表示以毫秒计的时间的持续时间。持续时间通常从间隔获得。即我们 可以从间隔的末尾减去开始以得出持续时间。
Joda-Time中的时间段表示按照字段定义的时间段,例如3年5个月2天和7小时。这个 与持续时间的不同之处在于它在 毫秒方面不准确。通过指定与时间有关的时间(包括时间顺序和时间 区域),只能将时间段解析为精确数量 毫秒。例如考虑一年的时间,如果我们在1月1日加上 ,我们将永远到达明年1月1日,但是 的持续时间取决于干预年份是否是跳跃 年。
LocalTime
是表示时间没有时间区一个不变的时间类。因此,根据上述定义,期限适合您在LocalTime
增加时间。事实上,API已经证明了这一点:
LocalTime localTime = new LocalTime(10, 30);
Duration d = new Duration(1, 0);
Period p = new Period(1, 0);
LocalTime newLocalTime = localTime.plus(d); // COMPILE ERROR
LocalTime newLocalTime = localTime.plus(p); // SUCCESS
@MikeNakis我很抱歉。我已经提出了你的答案(我需要编辑,所以我可以再次upvote,哈哈)。对不起,我没有仔细看到原始问题。 – hqt 2015-10-04 18:13:26
没关系,它发生了。 Ç - := – 2015-10-04 18:13:50
你可以使用的方法和()
LocalTime time1 = LocalTime.of(12, 30);
LocalTime time2 = LocalTime.of(8, 30);
Integer hour1 = time1.getHour();
Integer hour2 = time2.getHour();
Integer minute1 = time1.getMinute();
Integer minute2 = time2.getMinute();
Integer first = Integer.sum(hour1,hour2);
Integer second = Integer.sum(minute1,minute2);
System.out.println("The time is "+ first + " : " + second);
它必须努力
您可以执行下列操作...
LocalTime t1 = LocalTime.of(9, 0); // 09:00
LocalTime t2 = LocalTime.of(2, 30); // 02:30
LocalTime total = t1.plusHours(t2.getHour())
.plusMinutes(t2.getMinute()); // 11:30
你加起来两次会有什么期望? – 2015-02-09 14:45:34
你只是想添加从time2到time1的小时和分钟吗? – bhspencer 2015-02-09 14:47:15
您可以将'持续时间'对象加在一起 - 它们表示一段时间。您可以将“持续时间”添加到“LocalDate”。你不能添加两个日期 - 它绝对没有意义... – 2015-02-09 14:48:35