13 0 231 KB
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 %