簡體   English   中英

Java如何僅使用小時,分鍾和秒來比較LocalTime

[英]Java how to compare LocalTime using only hours, minutes and seconds

我想比較2 LocalTime是否相等,但僅使用小時,分鍾和秒,而不使用變量的所有數據(例如毫秒)進行比較。

我該怎么做?

您可以使用myTime.withHour(0)將小時設置為相同,而不是只剩下不同的分鍾和秒,並且您可以使用這兩次。

例:

time1 = ...
time2 = ...

if (time1.withHour(0).equals(time2.withHour(0))) {
  System.out.println('Minutes and Seconds of time1 and time2 are equal!');
}

您可以將兩個nanos都設置為一個數字,以使它們彼此相同(例如為零)以進行比較。

LocalTime localTime1 = LocalTime.of(1, 2, 3, 100);
LocalTime localTime2 = LocalTime.of(1, 2, 3, 47);
if (localTime1.withNano(0).equals(localTime2.withNano(0))){
    System.out.println("something");
}

考慮到問題的最后編輯版本,您可以通過以下方式僅比較小時,分鍾和第二部分來比較LocalTime的兩個實例:

LocalTime lt1 = LocalTime.now(); // usually contains seconds and subseconds
LocalTime lt2 = LocalTime.of(22, 48); // example with zero second part

boolean isEqualInSecondPrecision = 
    lt1.truncatedTo(ChronoUnit.SECONDS).equals(lt2.truncatedTo(ChronoUnit.SECONDS));

像這樣

LocalTime t1=..
LocalTime t2=..
LocalTime.of(t1.getHour(), t1.getMinutes()).compareTo(LocalTime.of(t2.getHour(),t2.getMinutes());

當然還需要幾秒鍾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM