Manipulasi Tanggal

Di dalam posting ini ada beberapa contoh yang akan gw tulis, mulai dari cara mendapatkan tanggal sistem, memanipulasi tanggal, formatting, parsing tanggal, dan proses pembandingan tanggal.
Mendapatkan Tanggal Sistem
Ada beberapa cara:
1. Menggunakan class java.util.Date
  1. //import part  
  2. import java.util.Date;  
  3.   
  4. Date tanggalSistem = new Date();  
  5. //atau seperti ini, sama saja  
  6. Date tanggalSistem2 = new Date(System.currentTimeMillis());  
  7. //mendapatkan nilai timestamp  
  8. long timestampSistem = tanggalSistem.getTime();  
2. Menggunakan java.util.Calendar
  1. //import part  
  2. import java.util.Calendar;  
  3. import java.util.Date;  
  4.   
  5. Calendar tanggalSistemCal = Calendar.getInstance();  
  6. //kita bisa mendapatkan juga Date dan timestamp  
  7. Date tanggalSistem3 = tanggalSistemCal.getTime();  
  8. long timestampSistem3 = tanggalSistemCal.getTimeInMillis();  
Gw lebih menyarankan untuk menggunakan Calendar dibanding Date, untuk seterusnya di bawah gw akan menggunakan Calendar.
Memanipulasi Tanggal
Yang gw maksud manipulasi di sini meliputi: membentuk tanggal tertentu, menambah suatu waktu tertentu.
  1. //import part  
  2. import java.util.Calendar;  
  3. import java.util.GregorianCalendar;  
  4.   
  5. //membentuk tanggal tertentu menggunakan GregorianCalendar, karena Calendar adalah abstract class  
  6. //28 Desember 2009 00:00:00, jam-menit-detik bernilai 0 karena tidak diset  
  7. Calendar tanggal1 = new GregorianCalendar(2009, Calendar.DECEMBER, 28);  
  8. //28 Desember 2009 16:54:00, detik bernilai 0 karena tidak diset  
  9. Calendar tanggal2 = new GregorianCalendar(2009, Calendar.DECEMBER, 281654);  
  10. //28 Desember 2009 16:54:19  
  11. Calendar tanggal3 = new GregorianCalendar(2009, Calendar.DECEMBER, 28165419);  
  12. //approach lainnya  
  13. Calendar tanggal4 = new GregorianCalendar();  
  14. tanggal4.set(Calendar.YEAR, 2009);  
  15. tanggal4.set(Calendar.MONTH, Calendar.DECEMBER);  
  16. tanggal4.set(Calendar.DATE, 28);  
  17. tanggal4.set(Calendar.HOUR_OF_DAY, 16);  
  18. tanggal4.set(Calendar.MINUTE, 54);  
  19. tanggal4.set(Calendar.SECOND, 19);  
  20. tanggal4.set(Calendar.MILLISECOND, 100);  
  21.   
  22. //penambahan atau pengurangan nilai tertentu  
  23. //tambah 1 hari dari tanggal sistem  
  24. Calendar tanggal5 = Calendar.getInstance();  
  25. tanggal5.add(Calendar.DATE, 1);  
  26. //kurangi 3 hari  
  27. tanggal5.add(Calendar.DATE, -3);  
Formatting
Bagaimana untuk memformat tanggal ke dalam pola tertentu? Gunakan java.text.SimpleDateFormat.
  1. //import part  
  2. import java.util.Calendar;  
  3. import java.text.SimpleDateFormat;  
  4.   
  5. Calendar tanggalSistemCal = Calendar.getInstance();  
  6. Date tanggalSistem = tanggalSistemCal.getTime();  
  7. SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");  
  8. SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");  
  9. SimpleDateFormat dateFormat3 = new SimpleDateFormat("dd MMM, yyyy");  
  10. String formatted1 = dateFormat1.format(tanggalSistem);  
  11. String formatted2 = dateFormat2.format(tanggalSistem);  
  12. String formatted3 = dateFormat3.format(tanggalSistem);  
  13.   
  14. System.out.println(">> formatted1: " + formatted1);  
  15. System.out.println(">> formatted2: " + formatted2);  
  16. System.out.println(">> formatted3: " + formatted3);  
akan menghasilkan output:
>> formatted1: 2009-Dec-28
>> formatted2: 2009-12-28 17:12:36
>> formatted3: 28 Dec, 2009
Parsing
Kita punya tanggal dalam bentuk String dan mau dijadikan object Date, juga gunakan java.text.SimpleDateFormat, kebalikan dari contoh di atas.
  1. //import part  
  2. import java.util.Calendar;  
  3. import java.text.SimpleDateFormat;  
  4.   
  5. SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");  
  6. String tanggalString = "2009-12-28";  
  7. Date tanggal = dateFormat1.parse(tanggalString);  
yang perlu diingat adalah format tanggal yang di-parse harus sesuai pattern yang kita set di constructor SimpleDateFormat, kalau tidak maka statement di atas akan menyebabkan java.text.ParseException
Pembandingan Tanggal
Apakah suatu tanggal lebih dahulu dari tanggal lainnya, dan sebaliknya.
  1. //import part  
  2. import java.util.Calendar;  
  3.   
  4. Calendar tanggal1 = new GregorianCalendar(2009, Calendar.DECEMBER, 28);  
  5. Calendar tanggal2 = new GregorianCalendar(2009, Calendar.DECEMBER, 29);  
  6. if(tanggal1.equals(tanggal2)) {  
  7.    System.out.println(">> tanggal1 sama dengan tanggal2");  
  8. else if(tanggal1.after(tanggal2)) {  
  9.    System.out.println(">> tanggal1 setelah tanggal2");  
  10. else if(tanggal1.before(tanggal2)) {  
  11.    System.out.println(">> tanggal1 sebelum tanggal2");  
  12. }  
akan menghasilkan:
>> tanggal1 sebelum tanggal2
Selamat mencoba!!
Javadoc
Java 4
Java 5
Java 6

Post a Comment