Saturday, December 3, 2011

Calendar dan Date (Part 1)

Tanggal merupakan hal sangat penting dalam aplikasi-aplikasi bisnis. Java menyediakan Calendar class sebagai utilitas untuk memanipulasi tanggal. Date class telah ditinggalkan oleh Java karena banyak mengandung bug, walaupun begitu Calendar class juga memiliki beberapa bug namun nampaknya sudah diperbaiki pada Java 7.

Saya masih sangat lemah dalam manipulasi tanggal, karena itu saya mencoba untuk merangkum beberapa snippet code yang mungkin membantu mengingat memory saya (walaupun dapat dilakukan dengan googling dan search ke oracle java docs)

Hirarki Class :
java.lang.Object
   java.util.Calendar

java.lang.Object
  java.text.Format
     java.text.DateFormat
         java.text.SimpleDateFormat 


Menampilkan tanggal hari ini:


public static void main (String [] args) {
    //menginisialisasi calendar dan mendapatkan tanggal dan waktu berdasarkan default locale dan timezone.
    Calendar now = Calendar.getInstance();
    // return Date object dari Calendar yang di instantiate, ini berguna untuk manipulasi ke String
    Date date = now.getTime();

    // dahulu anda dapat menginisialisasi seperti ini, namun tidak disarankan karena Date Class di Java sudah ditinggalkan, sebagai gantinya menggunakan Calendar.
    // date = date.now(); 

   // melakukan inisialisasi dan memberi date pattern, hanya date pattern yang didefinisikan yang akan dikenal oleh SimpleDateFormat.

   DateFormat df= new SimpleDateFormat("dd-mmm-yyyy");
    // df.format(date) akan me-return StringBuffer, karena itu harus diubah menjadi String

   String datestring = df.format(date).toString().toUpper();
   System.out.println (datestring);

   date = df.parse("15-Feb-2012");  // return date object
   System.out.println (df.format(date).toString() );


 }

Akan show (tanggal hari ini) contohnya : 11-NOV-2011 dan 15-Feb-2012

Keterangan:
date-pattern :
"dd.mm.yyyy", "mm/dd/yyyy", 
"E, dd MMM yyyy HH:mm:ss Z" (Tue, 03 Jan 2012 21:30:45 +0153), "EEEE, dd MMMM yyyy HH:mm:ss zzzz" (Tue, 03 Jan 2012 15:30:45 India Standard Time), 
dll. Lihat JavaDoc untuk lengkapnya.

Snippet diatas hanya secara sederhana menjelaskan konversi Date menjadi String dan String menjadi date berdasarkan format pattern yang telah sesuai. Mungkin berikutnya adalah manipulasi tanggal dengan Calendar class.

To be continued


Java Doc reference:
http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html


Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

No comments:

Post a Comment