1. Kelas DateTimeFormatter
Kelas khas DateTimeFormatter
memasuki API Masa Tarikh. Tujuannya adalah untuk menjadikannya semudah mungkin bagi pengaturcara menukar tarikh dan masa ke dalam format yang tepat yang mereka inginkan. Dan kami gembira untuk melaporkan bahawa pencipta Java berjaya.
Menggunakannya sangat mudah. Pertama, anda perlu mencipta DateTimeFormatter
kelas dan lulus dalam corak yang menentukan cara ia akan memaparkan tarikh dan masa:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
Di manakah dtf
pembolehubah DateTimeFormatter
. ialah kaedah statik kelas . Dan corak ialah rentetan yang menentukan corak yang akan digunakan untuk memaparkan tarikh dan masa.DateTimeFormatter.ofPattern()
DateTimeFormatter
Contoh
Kod | Output konsol |
---|---|
|
|
Dalam contoh di atas, kami menggunakan ofPattern()
kaedah untuk mencipta DateTimeFormatter
objek berdasarkan corak. Dan dalam baris seterusnya, kami menggunakan format()
kaedah untuk menukar LocalDateTime
objek menjadi rentetan. Anda lihat hasilnya pada skrin.
Anda boleh menghantar hampir semua objek dari API Masa Tarikh kepada format()
kaedah.
Statik ofPattern()
juga sangat mudah: ia memerlukan corak sebagai hujah dan mengembalikan DateTimeFormatter
objek. Bahagian yang paling menarik terdapat dalam corak.
2. Corak pemformatan
Rentetan yang dihantar sebagai corak digunakan sebagai corak apabila memaparkan maklumat. MM digantikan dengan nombor bulan, dd dengan hari bulan dan yy dengan nombor tahun. Kes surat itu penting.
Jadual penuh untuk corak masa ini ialah ini:
surat | Maknanya |
---|---|
y | tahun |
M | bulan |
d | Hari |
H | Jam |
m | minit |
s | Detik |
S | Beribu-ribu saat |
n | Nanosaat. |
Tidak terlalu sukar untuk diingati.
Tetapi mengapa corak dalam contoh termasuk huruf berulang MM, dd dan yy? Nah, di sinilah ia menjadi lebih menarik.
Idea umum
Bilangan huruf mempengaruhi panjang teks. Semakin banyak huruf, semakin panjang teksnya.
Jika huruf H dinyatakan sekali, maka 9 jam akan dipaparkan sebagai 9, tetapi jika huruf H dinyatakan dua kali berturut-turut, maka 9 jam akan dipaparkan sebagai 09.
Jika huruf y dinyatakan 2 kali berturut-turut, maka tahun ditulis menggunakan 2 digit. Jika ia berlaku 4 kali berturut-turut, maka 4 digit digunakan.
Jika huruf M dinyatakan 2 kali berturut-turut, maka nombor bulan itu ditulis. Jika 3 kali berturut-turut, maka nama bulan (3 huruf pertamanya) digunakan. Jika 4 kali berturut-turut, maka nama penuh bulan digunakan.
Contoh:
Kod | Output konsol |
---|---|
|
|
3. Jadual corak yang lengkap
Meja penuh agak besar dan sangat menarik:
Corak | Variasi corak | Contoh | Penerangan |
---|---|---|---|
y | yy, yyyy | 19; 2019 | tahun |
M/L | M, MM, MMM, MMMM, MMMMM | 1; 01; Jan; Januari; J | bulan |
d | d, dd | 9; 09 | Hari |
H | H, HH | 2; 02 | Jam |
m | m, mm | 3; 03 | minit |
s | s, ss | 5; 05 | Detik |
S | S, SS, SSS, ... | 1; 12; 123 | Beribu-ribu saat |
n | n | 123456789 | Nanosaat |
G | G, GGGG, GGGGG | AD; Anno Domini; A; | Era |
S/q | q, qq, qqq, qqqq | 3; 03; S3; suku ke-3 | Suku |
w | w | 13 | Minggu dalam setahun |
W | W | 3 | Minggu dalam bulan |
E | EEE, EEEE, EEEEE | isn; Isnin; M | Hari dalam seminggu |
e/c | e, ee, eee, eeee, eeeee | 1; 01; isn; Isnin; M | Hari dalam seminggu |
a | a | PM | Am atau PM |
h | h | 12 | Jam 12 jam. |
V | VV | Eropah/Helsinki | Zon masa |
z | z zzzz | EET; Waktu Piawai Eropah Timur | Zon masa |
O | O OOOO | GMT+2; GMT+02:00 | Zon masa |
By the way, ini sebenarnya bukan versi lengkap. Anda boleh mencari versi paling lengkap di sini .
4. Masa menghurai
Kelas ini DateTimeFormatter
juga menarik kerana keupayaannya untuk bukan sahaja menukar tarikh dan masa kepada rentetan mengikut corak yang diberikan, tetapi juga untuk melaksanakan operasi terbalik!
Menghuraikan rentetan ialah proses membahagikannya kepada token yang bermakna.
Inilah rupanya:
Kod | Output konsol |
---|---|
|
|
Pertama, kami mencipta DateTimeFormatter
objek dan menetapkan corak yang digunakan untuk menghurai.
Kemudian kami memanggil kaedah LocalDate.parse()
atau LocalTime.parse()
atau LocalDateTime.parse()
dan lulus dalam rentetan untuk dihuraikan bersama-sama dengan DateTimeFormatter
objek, yang memahami cara menghuraikan teks yang diluluskan dan corak yang harus digunakan untuk melakukannya.
Contoh lain: kali ini kita akan menghuraikan masa.
Kod | Output konsol |
---|---|
|
|