从两个 LocalTime 之间的差异获取 LocalTime
Get LocalTime from difference between two LocalTime's
我在寻找一种从另一个中减去一个 LocalTime
的优雅方法时遇到问题,但不是几秒或几分钟,而是这样:
LocalTime difference = now - before;
显然这行不通,所以实际上,我所追求的是接受两个 LocalTime
,然后再给我一个,所以我可以执行以下操作:
00:01:42:519
00:02:13:217
00:00:30:698
我试过以下方法:
long seconds = before.until(now, ChronoUnit.SECONDS);
但显然这只会让我秒,好吧,所以我将其更改为:
long millis = before.until(now, ChronoUnit.MILLIS);
long seconds = before.until(now, ChronoUnit.SECONDS);
long minutes = before.until(now, ChronoUnit.MINUTES);
long hours = before.until(now, ChronoUnit.HOURS);
但后来我意识到它只是计算指定单位的整个时间变化,而不是只计算 "contribution" 个单位的变化,如果你明白我的意思的话。
PS:我已经扫描了几个问题,它们似乎是同一件事,只是将整个差异返回到一个单一的单元中。如果这是重复的,请指出正确的方向!
有什么想法吗?
应该这样做:
LocalTime diff= t2.minusNanos(t1.toNanoOfDay());
阅读 LocalTime#until() 的 JavaDoc,我找到了这个解决方案:
long differenceMillis = MILLIS.between(before, now);
Instant start = Instant.now();
//your lengthy code here
Instant end = Instant.now();
long nanoDiff = end.getNano() - start.getNano();
为什么我 post 这个答案? B/c 您可以使用 Instant class 并获得多种不同格式作为您问题的答案...
我在寻找一种从另一个中减去一个 LocalTime
的优雅方法时遇到问题,但不是几秒或几分钟,而是这样:
LocalTime difference = now - before;
显然这行不通,所以实际上,我所追求的是接受两个 LocalTime
,然后再给我一个,所以我可以执行以下操作:
00:01:42:519
00:02:13:217
00:00:30:698
我试过以下方法:
long seconds = before.until(now, ChronoUnit.SECONDS);
但显然这只会让我秒,好吧,所以我将其更改为:
long millis = before.until(now, ChronoUnit.MILLIS);
long seconds = before.until(now, ChronoUnit.SECONDS);
long minutes = before.until(now, ChronoUnit.MINUTES);
long hours = before.until(now, ChronoUnit.HOURS);
但后来我意识到它只是计算指定单位的整个时间变化,而不是只计算 "contribution" 个单位的变化,如果你明白我的意思的话。
PS:我已经扫描了几个问题,它们似乎是同一件事,只是将整个差异返回到一个单一的单元中。如果这是重复的,请指出正确的方向!
有什么想法吗?
应该这样做:
LocalTime diff= t2.minusNanos(t1.toNanoOfDay());
阅读 LocalTime#until() 的 JavaDoc,我找到了这个解决方案:
long differenceMillis = MILLIS.between(before, now);
Instant start = Instant.now();
//your lengthy code here
Instant end = Instant.now();
long nanoDiff = end.getNano() - start.getNano();
为什么我 post 这个答案? B/c 您可以使用 Instant class 并获得多种不同格式作为您问题的答案...