1. Kelas DateTimeFormatter

Kelas khusus DateTimeFormattermenemukan jalannya ke Date Time API. Tujuannya adalah untuk membuatnya semudah mungkin bagi pemrogram untuk mengonversi tanggal dan waktu ke dalam format persis yang mereka inginkan. Dan dengan senang hati kami laporkan bahwa pencipta Java berhasil.

Menggunakannya sangat mudah. Pertama, Anda perlu membuat DateTimeFormatterkelas dan meneruskan pola yang menentukan bagaimana tanggal dan waktu akan ditampilkan:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);

Dimana dtfvariabel DateTimeFormatter. adalah metode statis kelas . Dan pattern adalah string yang menentukan pola yang akan digunakan untuk menampilkan tanggal dan waktu.DateTimeFormatter.ofPattern()DateTimeFormatter

Contoh

Kode Keluaran konsol
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM-dd-yy");
String text = dtf.format( LocalDateTime.now() );
System.out.println(text);


02-22-19

Pada contoh di atas, kita menggunakan ofPattern()metode untuk membuat DateTimeFormatterobjek berdasarkan pola. Dan di baris berikutnya, kami menggunakan format()metode untuk mengubah LocalDateTimeobjek menjadi string. Anda melihat hasilnya di layar.

Anda dapat meneruskan hampir semua objek dari Date Time API ke metode format().

Statis ofPattern()juga sangat sederhana: mengambil pola sebagai argumen dan mengembalikan DateTimeFormatterobjek. Bagian yang paling menarik ditemukan pada polanya.


2. Pola pemformatan

String yang diteruskan sebagai pola digunakan sebagai pola saat menampilkan informasi. MM diganti dengan angka bulan, dd dengan hari dalam bulan, dan yy dengan angka tahun. Kasus surat itu penting.

Tabel lengkap untuk pola waktu ini adalah sebagai berikut:

Surat Arti
y Tahun
M Bulan
D Hari
H Jam
M Menit
S Detik
S Seperseribu detik
N Nanodetik.

Tidak terlalu sulit untuk diingat.

Tetapi mengapa pola pada contoh tersebut menyertakan huruf berulang MM, dd dan yy? Nah, di sinilah semakin menarik.

Ide umum

Jumlah huruf mempengaruhi panjang teks. Semakin banyak huruf, semakin panjang teksnya.

Jika huruf H ditentukan satu kali, maka 9 jam akan ditampilkan sebagai 9, tetapi jika huruf H ditentukan dua kali berturut-turut, maka 9 jam akan ditampilkan sebagai 09.

Jika huruf y dicantumkan 2 kali berturut-turut, maka tahun ditulis dengan menggunakan 2 angka. Jika terjadi 4 kali berturut-turut, maka digunakan 4 digit.

Jika huruf M ditentukan 2 kali berturut-turut, maka dituliskan angka bulannya. Jika 3 kali berturut-turut, maka digunakan nama bulan (3 huruf pertamanya). Jika 4 kali berturut-turut, maka digunakan nama lengkap bulan tersebut.

Contoh:

Kode Keluaran konsol
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMMM-dd-yyyy");
String text = dtf.format( LocalDateTime.now() );
System.out.println(text);


February-22-2019


3. Lengkapi tabel pola

Tabel lengkapnya cukup besar dan sangat menarik:

Pola Variasi pola Contoh Keterangan
y yy, yyyy 19; 2019 Tahun
M/L M, MM, MM, MMMM, MMMM 1; 01; Jan; Januari; J Bulan
D d, dd 9; 09 Hari
H H, HH 2; 02 Jam
M m, mm 3; 03 Menit
S s, ss 5; 05 Detik
S S, SS, SS, ... 1; 12; 123 Seperseribu detik
N N 123456789 Nanodetik
G G, GGGG, GGGG IKLAN; Anno Domini; A; Zaman
Q/q q, qq, qq, qqqq 3; 03; Q3; kuartal ke-3 Seperempat
w w 13 Minggu dalam setahun
W W 3 Minggu dalam sebulan
e EEE, EEEE, EEEEE Senin; Senin; M Hari di minggu ini
e/c e, ee, ee, eeee, eeee 1; 01; Senin; Senin; M Hari di minggu ini
A A PM AM atau PM
H H 12 jam 12 jam.
V VV Eropa/Helsinki Zona waktu
z z zzzz EET; Waktu Standar Eropa Timur Zona waktu
HAI O OOOO GMT+2; GMT+02:00 Zona waktu

Omong-omong, ini sebenarnya bukan versi lengkap. Anda dapat menemukan versi terlengkap di sini .



4. Waktu penguraian

Kelas ini DateTimeFormatterjuga menarik karena kemampuannya tidak hanya mengonversi tanggal dan waktu menjadi string sesuai dengan pola yang diberikan, tetapi juga melakukan operasi kebalikannya!

Mengurai string adalah proses membaginya menjadi token yang bermakna.

Berikut tampilannya:

Kode Keluaran konsol
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMMM-dd-yyyy");
LocalDate date = LocalDate.parse("February-23-2019", dtf);
System.out.println(date);


February-23-2019

Pertama, kita membuat DateTimeFormatterobjek dan mengatur pola yang digunakan untuk parsing.

Kemudian kita memanggil metode LocalDate.parse()or LocalTime.parse()atau LocalDateTime.parse()dan meneruskan string yang akan diurai bersama dengan DateTimeFormatterobjek, yang memahami cara mengurai teks yang diteruskan dan pola apa yang harus digunakan untuk melakukannya.

Contoh lain: kali ini kita akan mengurai waktu.

Kode Keluaran konsol
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time = LocalTime.parse("23:59:59", dtf);
System.out.println(time);


23:59:59