0Pricing
Java Academy · Lekcja

Formatowanie za pomocą DateTimeFormatter

Parsuj i formatuj daty

Formatowanie za pomocą DateTimeFormatter to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 4 lekcji w sumie.

Zamiana dat na tekst

Domyślna metoda toString daty wyświetla ją w formacie ISO. Aby kontrolować wygląd wyniku lub parsować tekst w innym formacie niż ISO, należy użyć DateTimeFormatter z pakietu java.time.format.

Własny wzorzec

Formater należy utworzyć za pomocą ofPattern. Litery oznaczają poszczególne pola: yyyy oznacza rok, MM miesiąc, a dd dzień.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        System.out.println(date.format(f));
    }
}

Formatowanie czasu

We wzorcach czasu HH oznacza godziny w formacie 24-godzinnym, mm minuty, a ss sekundy.

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        LocalTime time = LocalTime.of(14, 5, 30);
        DateTimeFormatter f = DateTimeFormatter.ofPattern("HH:mm:ss");
        System.out.println(time.format(f));
    }
}

Łączenie daty i czasu

Jeden wzorzec może zawierać zarówno pola daty, jak i czasu dla obiektu LocalDateTime.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        LocalDateTime dt = LocalDateTime.of(2026, 5, 30, 9, 45);
        DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
        System.out.println(dt.format(f));
    }
}

Tekstowe nazwy miesięcy

Powtarzanie litery oznaczającej miesiąc zmienia jej formę: MM to liczba, MMM to skrócona nazwa, taka jak May, a MMMM to pełna nazwa.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.ENGLISH);
        System.out.println(date.format(f));
    }
}

Nazwy dni tygodnia

Do uzyskania pełnej nazwy dnia tygodnia należy użyć EEEE, a do formy skróconej — EEE. Aby zapewnić przewidywalny język wyniku, należy przekazać obiekt Locale.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        DateTimeFormatter f = DateTimeFormatter.ofPattern("EEEE, dd MMM", Locale.ENGLISH);
        System.out.println(date.format(f));
    }
}

Zegar dwunastogodzinny

Małe litery hh oznaczają godziny w formacie 12-godzinnym, a a znacznik AM lub PM.

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        LocalTime time = LocalTime.of(15, 30);
        DateTimeFormatter f = DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH);
        System.out.println(time.format(f));
    }
}

Parsowanie według wzorca

Ten sam formater może sparsować tekst z powrotem do daty. Należy przekazać go jako drugi argument do metody parse.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        LocalDate date = LocalDate.parse("30/05/2026", f);
        System.out.println(date.getMonth());
    }
}

Obsługa nieprawidłowych danych

Jeśli tekst nie pasuje do wzorca, parsowanie zgłasza wyjątek DateTimeParseException. Ryzykowne parsowanie należy umieścić w bloku try-catch.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        try {
            LocalDate.parse("not a date", f);
        } catch (DateTimeParseException e) {
            System.out.println("Invalid date format!");
        }
    }
}

Wbudowane formatery

W przypadku typowych zastosowań można pominąć wzorce i użyć predefiniowanych formaterów, takich jak DateTimeFormatter.ISO_DATE.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date.format(DateTimeFormatter.ISO_DATE));
    }
}

Ponowne używanie formaterów

DateTimeFormatter jest niezmienny i bezpieczny w środowisku wielowątkowym, dlatego należy utworzyć go raz i używać ponownie. Gdy w grę wchodzą nazwy, zawsze należy przekazać obiekt Locale, aby zachować spójność wyników.

Szybki test

Sprawdź znajomość formatowania.

Podsumowanie

Poznałeś formatowanie daty i czasu:

  • DateTimeFormatter.ofPattern definiuje własny format wyniku
  • Litery odpowiadają polom: yyyy, MM, dd, HH, mm
  • Większa liczba powtórzeń litery tworzy formy tekstowe, takie jak MMMM i EEEE
  • Ten sam formater parsuje tekst, zgłaszając wyjątek DateTimeParseException dla nieprawidłowych danych
  • Formatery są niezmienne i można ich używać ponownie; w przypadku nazw należy przekazać obiekt Locale

Często zadawane pytania

Czy lekcja „Formatowanie za pomocą DateTimeFormatter” jest bezpłatna?

Tak — pełny tekst „Formatowanie za pomocą DateTimeFormatter” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Formatowanie za pomocą DateTimeFormatter”?

Parsuj i formatuj daty Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Java Academy?

Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Formatowanie za pomocą DateTimeFormatter”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?

Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. LocalDate, LocalTime, LocalDateTime
  2. Instant i Duration
  3. Period i arytmetyka dat
  4. Formatowanie za pomocą DateTimeFormatter
← Powrót do Java Academy