Format Tanggal Dan Waktu Dalam Java [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Format Tanggal dan Waktu dalam Java 6 April 2014 by Firman Hidayat Di sini saya berikan contoh kelas yang menerapkan format tanggal dan waktu. Perhatikan, h –> menampilkan jam dalam format AM/PM (nilai: 1-12) H –> menampilkan jam dalam format 24 jam (nilai: 0-24) ss –> menampilkan detik SSSS –> menampilkan milisecond (jumlah deretan S menunjukkan jumlah digit yang akan ditampilkan). Meskipun jumlah digit SSS bisa banyak, namun nilai maksimum millisecond adalah 999. Karena nilai 1000 ms adalah sama dengan 1 detik. a –> menampilkan simbol AM atau PM EEEE –> menampilkan nama hari dalam bentuk huruf lengkap E atau EE atau EEE –> menampilkan nama hari dalam bentuk huruf disingkat M atau MM –> menampilkan bulan dalam bentuk bilangan MMM –> menampilkan bulan dalam bentuk huruf disingkat MMMM –> menampilkan bulan dalam bentuk huruf lengkap yy –> menampilkan tahun berupa dua digit terakhir misal: 14 y atau yyy atau yyyy –> menampilkan tahun berupa empat digit, misal 2014. Objek Locale, menurut Oracle: “A Locale object represents a specific geographical, political, or cultural region. An operation that requires a Locale to perform its task is called locale-sensitive and uses the Locale to tailor information for the user. For example, displaying a number is a localesensitive operation— the number should be formatted according to the customs and conventions of the user’s native country, region, or culture.” Pada koding dalam artikel ini, Locale berpengaruh pada bentuk format penulisan tanggal. Misalnya bila menggunakan Locale.US, maka format penulisan tanggal yang digunakan adalah format United States (US). Dengan menggunakan Locale.US, nama bulan yang ditampilkan akan berupa bahasa Inggris: January, February, March, dst. Ada beberapa konstanta Locale yang sudah disediakan oleh Java di antaranya: Locale.CANADA, Locale.CANADA_FRENCH, Locale.CHINA, Locale.CHINESE,



Locale.FRANCE, Locale.FRENCH, Locale.GERMAN, Locale.GERMANY, Locale.ITALY, Locale.ITALIAN, Locale.JAPAN, Locale.JAPANESE, Locale.KOREA, Locale.TAIWAN, Locale.UK, Locale.US. Pada koding di bawah, bila fields Locale lokal diisi null, maka aplikasi akan menggunakan format penulisan tanggal regional yang digunakan oleh sistem operasi saat ini. (Pada contoh ini OS pada PC saya menggunakan regional Indonesia). Kita dapa mengisi field lokal ini dengan salah satu konstanta Locale yang dicontohkan di atas. Contoh penerapan pada kelas: 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



import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale;



 



/*  *  @Author Firman Hidayat  */



 



public class ContohFormatTanggalWaktu {     public static void main(String[] args) {         String pola = null;         Locale lokal = null;         String hasil = null;         Date tanggalDanWaktu = new Date();



 



        pola = "dd/MM/yy";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println("Format date asli = " + tanggalDanWaktu);         System.out.println("========================================= ========");         System.out.println(pola + "\t\t ---> " + hasil);



 



        pola = "dd MMMM yyyy";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println(pola + "\t\t ---> " + hasil);



 



        pola = "EEEE, dd MMMM, ''yy";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println(pola + "\t ---> " + hasil);



 



        pola = "h:mm a";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println(pola + "\t\t\t ---> " + hasil);



 



        pola = "H:mm";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println(pola + "\t\t\t ---> " + hasil);



 



        pola = "H:mm:ss:SSS";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);



40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88



        System.out.println(pola + "\t\t ---> " + hasil);



 



        pola = "yyyy.MM.dd G 'at' hh:mm:ss z";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println(pola + "\t\t ---> " + hasil);



 



        pola = "yyyy.MMMMM.dd GGG hh:mm aaa";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println(pola + "\t\t ---> " + hasil);



 



        pola = "dd MMMM yyyy', Pukul' HH:mm:ss:SSSSS";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println(pola + "\t ---> " + hasil);



 



        lokal = Locale.FRANCE;         pola = "EEEE, dd MMMM, yyyy";         hasil = ContohFormatTanggalWaktu.tampilkanTanggalDanWaktu(                 tanggalDanWaktu, pola, lokal);         System.out.println(pola + "\t\t\t ---> " + hasil                 + " (Lokal yng dipakai = " + lokal.getDisplayName() + ")");



 



        System.out.println("Dalam format timestamp = "                 + tanggalDanWaktu.getTime());



 



    }



 



    protected static String tampilkanTanggalDanWaktu(Date tanggalDanWaktu,             String pola, Locale lokal) {         String tanggalStr = null;         SimpleDateFormat formatter = null;         if (lokal == null) {             formatter = new SimpleDateFormat(pola);         } else {             formatter = new SimpleDateFormat(pola, lokal);         }



 



        tanggalStr = formatter.format(tanggalDanWaktu);         return tanggalStr;     } }



Output kelas tersebut seperti ini: 1 2 3 4 5 6 7 8 9 10 11 12 13



Format date asli = Sun Apr 06 18:19:48 ICT 2014 ================================================= dd/MM/yy         ---> 06/04/14 dd MMMM yyyy         ---> 06 April 2014 EEEE, dd MMMM, ''yy  ---> Minggu, 06 April, '14 h:mm a           ---> 6:19 PM H:mm             ---> 18:19 H:mm:ss:SSS      ---> 18:19:48:838 yyyy.MM.dd G 'at' hh:mm:ss z         ---> 2014.04.06 CE at 06:19:48 ICT yyyy.MMMMM.dd GGG hh:mm aaa      ---> 2014.April.06 CE 06:19 PM dd MMMM yyyy', Pukul' HH:mm:ss:SSSSS     ---> 06 April 2014, Pukul 18:19:48:00838 EEEE, dd MMMM, yyyy          ---> dimanche, 06 avril, 2014 (Lokal yng dipakai = French (France)) Dalam format timestamp = 1396783188838



import java.text.SimpleDateFormat; import java.util.Calendar; public class BuatTanggal { public static void main(String[] args) { Calendar cal = Calendar.getInstance(); SimpleDateFormat HH:mm:ss”); SimpleDateFormat SimpleDateFormat SimpleDateFormat SimpleDateFormat String String String String String



}



}



Tanggal1 Tanggal2 Tanggal3 Tanggal4 Tanggal5



contoh1 = new SimpleDateFormat(“EE, dd/MM/yyyy contoh2 contoh3 contoh4 contoh5 = = = = =



= = = =



new new new new



SimpleDateFormat(“dd-MM-yyyy”); SimpleDateFormat(“d-MMM-yyyy”); SimpleDateFormat(“EEEE, d MMMM yyyy”); SimpleDateFormat(“HH:mm:ss”);



contoh1.format(cal.getTime()); contoh2.format(cal.getTime()); contoh3.format(cal.getTime()); contoh4.format(cal.getTime()); contoh5.format(cal.getTime());



System.out.println(Tanggal1); System.out.println(Tanggal2); System.out.println(Tanggal3); System.out.println(Tanggal4); System.out.println(Tanggal5);



Tanggal Dan Waktu Pada Java - Java Date And Time - Java NetBeans By Wisnu Nunu20:572 comments Java menyediakan class tanggal yang tersedia dalam java.util package, class ini berisi rangkuman tanggal dan waktu. Class tanggal mendukung dua konstruktor seperti yang ditunjukkan dibawah ini.



No



1



Konstruktor dan Deskripsi



Date() Konstruktor ini menginisialisasi objek dengan tanggal dan waktu.



2



Date(long millisec) Konstruktor ini menerima argumen yang sama dengan jumlah milidetik yang telah berlalu sejak tengah malam, 1 Januari 1970



Dibawah ini adalah metode dari class tanggal (date). No



1



Metode dengan Deskripsi



boolean after(Date date) Mengembalikan nilai true jika memohon objek tanggal berisi tanggal yang kemudian ditentukan berdasarkan tanggal yang telah ditentukan, jika tidak, ia mengembalikan false.



2



boolean before(Date date) Mengembalikan nilai true jika memohon objek tanggal berisi tanggal yang lebih awal dari yang ditentukan berdasarkan tanggal yang ditentukan, jika tidak, ia mengembalikan false.



3



Objek clone() Menduplikasi invoking objek Date.



4



int compareTo(Date date) Membandingkan nilai objek pemohon dengan tanggal. Mengembalikan 0 jika nilai sama. Mengembalikan



nilai



negatif



jika



objek



pemohon



lebih



awal



dari



tanggal. Mengembalikan nilai positif jika objek pemohon adalah paling akhir dari tanggal. 5



int compareTo(Object obj)



Beroperasi identik dengan compareTo(Date) jika obj adalah kelas Tanggal. Jika tidak, ClassCastException akan dilempar. 6



boolean equals (Object tanggal) Mengembalikan nilai true jika memohon objek Date berisi waktu yang sama dan tanggal seperti yang ditentukan berdasarkan tanggal, jika tidak, ia mengembalikan false.



7



long getTime() Mengembalikan jumlah milidetik yang telah berlalu sejak 1 Januari 1970.



8



int hashCode() Mengembalikan kode hash untuk objek pemohon.



9



void setTime(long time) Mengatur waktu dan tanggal yang ditentukan oleh waktu, yang merupakan waktu yang telah berlalu dalam milidetik dari tengah malam, 1 Januari 1970



10



String toString () Mengubah invoking objek Date ke dalam sebuah string dan mengembalikan hasilnya.



Mendapatkan Tanggal Dan Waktu Saat Ini Bukan perkara sulit untuk mendapatkan tanggal dan waktu pada Java. Kita dapat menggunakan objek tanggal sederhana dengan toString(), berikut adalah method untuk mencetak tanggal dan waktu: import java.util.Date; public class TestTanggal { public static void main(String args[]) { //



object tanggal



Date date = new Date();



// menampilkan waktu dan tanggal menggunakan toString() System.out.println(date.toString()); } }



Berikut adalah hasil dari kode diatas. Tue Feb 04 18:08:26 ICT 2016



Membandingkan Tanggal Terdapat tiga cara untuk membandingkan dua tanggal: 1. Kita dapat menggunakan getTime() untuk mendapatkan jumlah milidetik yang telah berlalu sejak tengah malam, 1 Januari 1970, untuk kedua objek dan kemudian membandingkan kedua nilai tersebut. 2. Cara kedua yaitu menggunakan method before(), after(), dan equals(). Karena 12 bulan datang sebelum tanggal 18, misalnya new Date(99, 2, 12). before(new Date (99, 2, 18)) akan menghasilkan nilai true. 3. Cara terakhir dapat menggunkan compareTo(), yang didefinisikan oleh antarmuka yang dibandingkan dan dilaksanakan oleh tanggal secara otomatis.



Memformat Tanggal Menggunakan SimpleDateFormat SimpleDateFormat merupakan concrete class untuk memformat dan memparsing tanggal secara lokal-sensitif. SimpleDateFormat memungkinkan kita untuk memulai  dengan memilih setiap pola yang ditetapkan pengguna untuk format date-time formatting. Contoh:



import java.util.*; import java.text.*;



public class TestTanggal{ public static void main(String args[]) {



Date HariSekarang = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'pada' hh:mm:ss a zzz");



System.out.println("Tanggal dan waktu saat ini: " + ft.format(HariSekarang)); } }



Berikut



adalah



hasil



dari



kode



diatas.



Tanggal dan waktu saat ini: Tue 2016.02.02 pada 06:49:03 PM ICT



Format Kode Sederhana DateFormat Untuk menentukan format waktu, menggunakan waktu pola string. Dalam pola ini, semua huruf ASCII dicadangkan sebagai huruf pola, yang didefinisikan sebagai berikut: Karakter



Deskripsi



Contoh



G



Era designator



AD



y



Tahun dalam empat digit



2001



M



Bulan pada tahun



July atau 07



d



Hari pada bulan



10



h



Jam AM / PM (1 ~ 12)



12



H



Jam dalam sehari (0 ~ 23)



22



m



Menit pada jam



30



s



detik pada menit



55



S



Milidetik



234



E



Hari dalam seminggu



Selasa



D



Hari dalam tahun



360



F



Hari dalam seminggu dalam bulan



2 (second Wed. in July)



w



Minggu dalam tahun



40



W



Minggu dalam bulan



1



a



AM / PM penanda



PM



k



Jam dalam sehari (1 ~ 24)



24



K



Jam AM / PM (0 ~ 11)



10



z



Zona waktu



Eastern Standard Time



'



Tanda Pemisah untuk teks



'Contoh'



"



Kutip tunggal



`



Memformat Tanggal Menggunakan printf Memformat tanggal dan waktu dapat dilakukan dengan sangat mudah menggunkan method printf, kita dapat menggunakan format dua huruf, dimulai dengan t dan berakhir pada salah satu huruf seperti pada contoh dibawah ini. import java.util.Date;



public class TestTanggal{



public static void main(String args[]) { // object tanggal Date date = new Date();



// menampilkan tanggal dan waktu menggunakan toString() String str = String.format("Tanggal dan waktu saat ini : %tc", date );



System.out.printf(str); }



}



Berikut adalah hasil dari kode diatas. Tanggal dan waktu saat ini : Tue Feb 02 19:06:01 ICT 2016



Akan sedikit merepotkan jika kita harus menyediakan tanggal beberapa kali untuk memformat setiap bagian. Untuk itu, format string dapat menunjukkan indeks argumen yang akan diformat. Indeks harus segera mengikuti % dan itu harus diakhiri oleh $. Contoh: import java.util.Date;



public class TestTanggal{



public static void main(String args[]) { // object tanggal Date date = new Date();



// menampilkan tanggal and waktu menggunakan toString() System.out.printf("%1$s %2$tB %2$td, %2$tY", "Tanggal saat ini:", date); } }



Berikut adalah hasil dari kode diatas. Tanggal saat ini: February 02, 2016



Atau kita dapat menggunakan < flag.Hal ini menunjukkan bahwa argumen yang sama seperti dalam format spesifikasi sebelumnya harus digunakan lagi. Contoh: import java.util.Date;



public class DateDemo {



public static void main(String args[]) { // object tanggal Date date = new Date();



// menampilkan tanggal yang telah diformat System.out.printf("%s %tB %