W Javie, formatowanie i wyświetlanie dat w określonym formacie jest częstym zadaniem w wielu aplikacjach. Metoda printf z klasy System.out pozwala na formatowanie danych wyjściowych, w tym dat, w łatwy i kontrolowany sposób. W tej lekcji skupimy się na wykorzystaniu printf do formatowania dat oraz na przykładzie użycia SimpleDateFormat do konwersji dat w Javie.
Przykład formatowania daty za pomocą printf
Java oferuje klasę Date do reprezentowania dat i czasu. Możemy użyć printf do wyświetlenia daty w różnych formatach.
// Importowanie klasy Date
import java.util.Date;
public class DateExample {
    public static void main(String[] args) {
        // Tworzenie nowego obiektu Date
        Date now = new Date();
        // Wyświetlanie bieżącej daty i czasu
        // z użyciem printf
        System.out.printf("Aktualna data i czas: %tc\n", now);
    }
}
W powyższym przykładzie, %tc jest specyfikatorem formatu, który wyświetla datę i czas zgodnie z ustawieniami regionalnymi.
Formatowanie daty za pomocą SimpleDateFormat
Klasa SimpleDateFormat pozwala na bardziej szczegółowe formatowanie daty i czasu. Możemy określić własny format daty, używając określonych wzorców.
// Importowanie potrzebnych klas
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatExample {
    public static void main(String[] args) {
        // Tworzenie obiektu Date
        Date now = new Date();
        // Definiowanie formatu daty
        SimpleDateFormat sdf = 
             new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        // Formatowanie i wyświetlanie daty
        System.out.println("Sformatowana data i czas: "
                            + sdf.format(now));
    }
}
Przykłady formatowania
// Importowanie klasy Date
import java.util.Date;
public class DateFormattingExamples {
    public static void main(String[] args) {
        Date now = new Date();
        // Wyświetlanie całej daty i czasu
        System.out.printf("Pełna data i czas: %tc\n", now);
        // Tylko data
        System.out.printf("Tylko data (r-m-d): %tF\n", now);
        // Tylko czas
        System.out.printf("Tylko czas (g:m:s AM/PM): %tr\n", now);
        // Dzień tygodnia, miesiąc i dzień miesiąca
        System.out.printf("Dzień tygodnia, miesiąc i dzień:" 
                  + " %tA, %tB %td\n", now, now, now);
        // Godzina i minuta
        System.out.printf("Godzina i minuta: %tH:%tM\n", now, now);
 
    }
}
Opis możliwości
- %tc – Pełna reprezentacja daty i czasu zgodnie z ustawieniami regionalnymi.
- %tF – Data w formacie ISO 8601 (YYYY-MM-DD).
- %tr – Czas w formacie 12-godzinnym (hh:mm:ss AM/PM).
- %tA – Pełna nazwa dnia tygodnia.
- %tB – Pełna nazwa miesiąca.
- %td – Dwucyfrowy numer dnia miesiąca.
- %tH – Godzina w formacie 24-godzinnym.
- %tM – Minuty.
- %tS – Sekundy.
- Niestandardowy format – Możliwość mieszania specyfikatorów w celu uzyskania niestandardowego formatowania daty i czasu, jak pokazano w ostatnim przykładzie.
Dodatkowe możliwości
- %tY – Pełny rok (np. 2024).
- %ty – Ostatnie dwie cyfry roku (np. 24).
- %tm – Miesiąc jako liczba (01-12).
- %te – Dzień miesiąca jako liczba (1-31) bez zer wiodących.
- %tR – Czas w formacie 24-godzinnym bez sekund (HH:MM).
- %tD – Data w amerykańskim formacie skróconym (MM/DD/YY).
- %tZ – Strefa czasowa.
- %tQ – Milisekundy od epoki (1 stycznia 1970).
Podsumowanie
Metoda printf w Javie oferuje szerokie możliwości formatowania daty i czasu, umożliwiając dostosowanie wyjścia do potrzeb aplikacji. Specyfikatory formatu pozwalają na wyświetlanie daty i czasu w różnych stylach, od pełnych reprezentacji zgodnych z ustawieniami regionalnymi, po niestandardowe kombinacje formatów. Dzięki temu, programiści mogą precyzyjnie kontrolować sposób prezentacji daty i czasu w swoich aplikacjach.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.
