Java 8 : Membandingkan Tanggal pada Java

Membandingkan tanggal pada java sangatlah mudah dengan catatan telah memahami tutorial sebelumnya tentang penggunaan API Date Time dan Calender. Berikut contoh-contoh cara membandingkan tanggal pada java termasuk pada java 8.

1. Date.compareTo()

Cara ini merupakan cara lama membandingkan dua buah tanggal pada java. Perintah Date.compare() akan menghasilkan nilai 0 jika kedua tanggal sama dan menghasilkan nilai lebih besar atau lebih kecil jika ada perbedaan tanggal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class TestDate {
 
public static void main(String[] args) throws ParseException {
 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date date1 = sdf.parse("2009-12-31");
 Date date2 = sdf.parse("2010-01-31");
 
System.out.println("date1 : " + sdf.format(date1));
 System.out.println("date2 : " + sdf.format(date2));
 
if (date1.compareTo(date2) > 0) {
 System.out.println("Date1 is after Date2");
 } else if (date1.compareTo(date2) < 0) {
 System.out.println("Date1 is before Date2");
 } else if (date1.compareTo(date2) == 0) {
 System.out.println("Date1 is equal to Date2");
 } else {
 System.out.println("How to get here?");
 }
 
}
 
}

Output

date1 : 2009-12-31
date2 : 2010-01-31
Date1 is before Date2

2. Date.before(), Date.after() and Date.equals()

Methode yang lebih gampang digunakan dari pada methode Date.compare()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class TestDate2 {
 
public static void main(String[] args) throws ParseException {
 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date date1 = sdf.parse("2009-12-31");
 Date date2 = sdf.parse("2010-01-31");
 
System.out.println("date1 : " + sdf.format(date1));
 System.out.println("date2 : " + sdf.format(date2));
 
if (date1.after(date2)) {
 System.out.println("Date1 is after Date2");
 }
 
if (date1.before(date2)) {
 System.out.println("Date1 is before Date2");
 }
 
if (date1.equals(date2)) {
 System.out.println("Date1 is equal Date2");
 }
 
}
 
}

Output

date1 : 2009-12-31
date2 : 2010-01-31
Date1 is before Date2

3. Calender.before(), Calender.after() and Calender.equals()

Selain menggunakan API java.until.Date membandingkan tanggal juga dapat menggunakan Calender

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
 
public class TestDate3 {
 
public static void main(String[] args) throws ParseException {
 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date date1 = sdf.parse("2009-12-31");
 Date date2 = sdf.parse("2010-01-31");
 
System.out.println("date1 : " + sdf.format(date1));
 System.out.println("date2 : " + sdf.format(date2));
 
Calendar cal1 = Calendar.getInstance();
 Calendar cal2 = Calendar.getInstance();
 cal1.setTime(date1);
 cal2.setTime(date2);
 
if (cal1.after(cal2)) {
 System.out.println("Date1 is after Date2");
 }
 
if (cal1.before(cal2)) {
 System.out.println("Date1 is before Date2");
 }
 
if (cal1.equals(cal2)) {
 System.out.println("Date1 is equal Date2");
 }
 }
 
}

Output

date1 : 2009-12-31
date2 : 2010-01-31
Date1 is before Date2

 

4. Java 8

pada java8 kita bisa menggunakan isBefore(), isAfter(), isEqual() dan compareTo() untuk membandingkan tanggal.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
 
public class TestDate4 {
 
public static void main(String[] args) {
 
DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
 LocalDate date1 = LocalDate.of(2009, 12, 31);
 LocalDate date2 = LocalDate.of(2010, 01, 31);
 
System.out.println("date1 : " + sdf.format(date1));
 System.out.println("date2 : " + sdf.format(date2));
 
System.out.println("Is...");
 if (date1.isAfter(date2)) {
 System.out.println("Date1 is after Date2");
 }
 
if (date1.isBefore(date2)) {
 System.out.println("Date1 is before Date2");
 }
 
if (date1.isEqual(date2)) {
 System.out.println("Date1 is equal Date2");
 }
 
System.out.println("CompareTo...");
 if (date1.compareTo(date2) > 0) {
 
System.out.println("Date1 is after Date2");
 
} else if (date1.compareTo(date2) < 0) {
 
System.out.println("Date1 is before Date2");
 
} else if (date1.compareTo(date2) == 0) {
 
System.out.println("Date1 is equal to Date2");
 
} else {
 
System.out.println("How to get here?");
 
}
 }
 
}

Output

date1 : 2009-12-31
date2 : 2010-01-31
Is...
Date1 is before Date2
CompareTo...
Date1 is before Date2

References

  1. Date CompareTo JavaDoc
  2. Calendar before after JavaDoc
  3. LocalDate JavaDoc
  4. How to Compare Date in Java

 

Share This

 

2 tanggapan untuk “Java 8 : Membandingkan Tanggal pada Java

  1. Ping-balik: Java 8 : Membandingkan Tanggal pada Java – Jagungodak | Free ALL Script PHP, javascript, C++

  2. Ping-balik: Menggunakan Thread pada Java - Jagungodak

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

three × five =

This site uses Akismet to reduce spam. Learn how your comment data is processed.