Format Tanggal
Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 58 dari 59.
DateTimeFormatter di Java memungkinkanmu memformat tanggal dan waktu dengan berbagai pola. Ini dapat digunakan dengan LocalDate, LocalTime, dan LocalDateTime.
Buat formatter dengan pola tertentu:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");Format tanggal menggunakan pemformat:
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);Setelah menjalankan kode di atas, formatted berisi:
2024-03-15
Urai string menjadi tanggal:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);Kedua langkah dapat gagal. DateTimeFormatter.ofPattern() melempar IllegalArgumentException saat polanya tidak valid, misalnya ofPattern("invalid"), karena i bukan huruf pola. LocalDate.parse() melempar DateTimeParseException saat teks tidak cocok dengan pola atau bukan tanggal yang valid, misalnya "2024-13-45". IllegalArgumentException berada di java.lang, jadi tidak memerlukan import:
try {
DateTimeFormatter f = DateTimeFormatter.ofPattern(pattern);
LocalDate d = LocalDate.parse(text, f);
} catch (DateTimeParseException e) {
// teks tidak cocok dengan pola
} catch (IllegalArgumentException e) {
// pola tidak valid
}Tantangan
MudahBuat method bernama formatDate yang menerima tiga argumen:
- String (
dateStr): tanggal yang ditulis dengan pola input - String (
inputPattern): pola tanggal input - String (
outputPattern): pola output yang diinginkan
Method tersebut harus:
- Mengurai tanggal input menggunakan pola input
- Memformatnya menggunakan pola output
- Menangani pola berikut:
- "basic": "yyyy-MM-dd"
- "long": "MMMM d, yyyy"
- "short": "MM/dd/yy"
- "custom": String pola yang sebenarnya
Pesan yang dikembalikan harus berupa:
- Jika tanggal tidak valid: kembalikan "Invalid date format"
- Jika pola tidak valid: kembalikan "Invalid pattern"
- Jika berhasil: kembalikan tanggal yang telah diformat
Coba sendiri
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String formatDate(String dateStr, String inputPattern, String outputPattern) {
// Tulis kodemu di sini
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
String inputPattern = scanner.nextLine();
String outputPattern = scanner.nextLine();
System.out.println(formatDate(dateStr, inputPattern, outputPattern));
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
1Array Multidimensi
Dasar Array 2DMengakses Elemen Array 2DLoop Bersarang dengan Array 2DRangkuman: Array 2DPenjumlahan dan Pengurangan MatriksArray BergerigiArray 3D dan Lebih JauhPola Umum Array 2DRangkuman: Semua tentang Array4HashSet Bagian 1
Apa itu HashSet?Menambahkan ElemenMenghapus ElemenMemeriksa Apakah Elemen AdaKosong dan UkuranMengosongkan dan MenyalinRekap: HashSet10Tanggal dan Waktu
Dasar-dasar LocalDateOperasi LocalTimePenggunaan LocalDateTimePeriod dan DurationFormat TanggalPenanganan Zona Waktu2HashMap Bagian 1
Apa itu HashMap?Deklarasikan HashMapMengakses nilaiPeriksa apakah key adaMengubah dictionaryRingkasan: HashMap3HashMap Bagian 2
Method HashMapIterasi dengan keySet()Iterasi dengan entrySet()HashMap BersarangRangkuman: Kelola GudangRangkuman: Operasi HashMap6Alur Kontrol Lanjutan
Pernyataan LabelEkspresi SwitchPencocokan PolaKlausa PenjagaRingkasan Alur Kontrol9Proyek: Penghitung Kata Unik
Input dan Penyimpanan TeksPemrosesan KataLatihan sendiri: Compiler Java online