Best way to compare time in Eclipse RCP
Disadvantage of Using Date for Time comparison:
First of all let's understand why java.util.Date is not effective to just compare time.
If you are using java.util.Date and add two different time and if it exceed beyond 24 hours, it will add 1 day to the java.util.Date.
e.g.
Date date1 = new Date(0, 0, 0, 20, 59, 59); System.out.println("Date 1: "+date1); Date date2 = new Date(0, 0, 0, 5, 1, 1); System.out.println("Date 2: "+date2); Date additionDate = new Date(date2.getTime()); additionDate.setHours(date2.getHours()+ date1.getHours()); additionDate.setMinutes(date2.getMinutes()+ date1.getMinutes()); additionDate.setSeconds(date2.getSeconds()+ date1.getSeconds()); System.out.println("Addition: "+additionDate);
Output:
Date 1: Sun Dec 31 20:59:59 IST 1899 Date 2: Sun Dec 31 05:01:01 IST 1899 Addition: Mon Jan 01 02:01:00 IST 1900
As you can see here, the date is increase to one Day. so to calculate just time, using java.util.Date should not be preferred. Instead of that, java.time.LocalTime can be used to calculate Time.
java.time.LocalTime is the one of the best way to compare only time. java.time.LocalTime is without a time-zone in the ISO-8601 calendar system, such as 07:07:40.
java.time.LocalTime can be used to track the timing.
Following Example shows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.time.LocalTime; public class CompareTimeExample { public static void main(String[] args) { // Current Time LocalTime localTime1 = LocalTime.now(); System.out.println(localTime1); // Specific Time LocalTime localTime2 = LocalTime.of(7, 20, 10); System.out.println(localTime2); // Compare time System.out.println("is Before : "+localTime1.isBefore(localTime2)); System.out.println("is After : "+localTime1.isAfter(localTime2)); // Difference between two time LocalTime minusTime = localTime1.minusHours(localTime2.getHour()).minusMinutes(localTime2.getMinute()).minusSeconds(localTime2.getSecond()); System.out.println(minusTime); } } |
Output :
23:36:54.639 07:20:10 is Before : false is After : true 16:16:44.639
Summary
java.time.LocalTime is useful when two different time has to be compared without time-zone.
Comments
Post a Comment