Menu
CoddyTech

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
}
challenge icon

Tantangan

Mudah

Buat method bernama formatDate yang menerima tiga argumen:

  1. String (dateStr): tanggal yang ditulis dengan pola input
  2. String (inputPattern): pola tanggal input
  3. String (outputPattern): pola output yang diinginkan

Method tersebut harus:

  1. Mengurai tanggal input menggunakan pola input
  2. Memformatnya menggunakan pola output
  3. 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));
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Java online