Menu
Coddy logo textTech

Formatowanie dat

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 58 z 59.

DateTimeFormatter w języku Java pozwala formatować daty i godziny według różnych wzorców. Można go używać z LocalDate, LocalTime i LocalDateTime.

Utwórz formater z określonym wzorcem:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

Sformatuj datę za pomocą formatowania:

LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);

Po wykonaniu powyższego kodu formatted zawiera:

2024-03-15

Przekształć ciąg znaków w datę:

String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);
challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie formatDate, która przyjmuje trzy argumenty:

  1. String (dateStr) w formacie "yyyy-MM-dd"
  2. String (inputPattern) — wzorzec daty wejściowej
  3. String (outputPattern) — żądany wzorzec wyjściowy

Metoda powinna:

  1. Parsować datę wejściową przy użyciu wzorca wejściowego
  2. Formatować ją przy użyciu wzorca wyjściowego
  3. Obsługiwać następujące wzorce:
    • "basic": "yyyy-MM-dd"
    • "long": "MMMM d, yyyy"
    • "short": "MM/dd/yy"
    • "custom": ciąg znaków określający wzorzec

Zwracane komunikaty powinny być następujące:

  • Jeśli data jest nieprawidłowa: zwróć "Invalid date format"
  • Jeśli wzorzec jest nieprawidłowy: zwróć "Invalid pattern"
  • W przypadku powodzenia: zwróć sformatowaną datę

Spróbuj swoich sił

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) {
        // Napisz tutaj swój kod
    }
    
    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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online