Metoda printf pozwala na wyświetlanie danych w określonym formacie.
Dane wyświetlane tą metodą są formatowane na bazie szablonu i zestawu argumentów.
System.out.printf("Hello %s %n", "World");
W powyższym przykładzie możemy zauważyć, iż korzystamy ze znaku %, który określa format danych składający się na pewien schemat.
Następnie, po przecinku wypisujemy kolejne argumenty, które będą podstawiane do konkretnego szablonu.
Możliwe formaty to:
%d – format dla liczb całkowitych
%f – format dla liczb rzeczywistych
%s – format dla ciągów znaków
%b – format dla typu logicznego
%n – znak nowej linii
%t.. – format dla dat, który jest rozszerzany o następne formaty:
A lub a – pełna nazwa dnia tygodnia lub skrócona
B lub b – pełna nazwa miesiąca lub 3 literowa nazwa miesiąca
c – cała data i czas
F – data w formacie 2021-05-27
T – godzina w formcie 24h / R – bez sekund / H – 2cyfrowa / k – bez zer
r – godzina w formacie 12h / p – pm/am
M – minuty 2cyfrowo
S – sekundy 2cyfrowo
Y lub y – rok 4cyfrowy lub 2cyfrowy
m – 2cyfrowy miesiąc
d lub e – dzień 2cyfrowy lub bez zer
s – znacznik czasowy/timestamp
Q – milisekundy
1..n$ – możemy wskazać na konkretny argument do formatowania
Przykłady:
System.out.printf("%d %f %s %b %n", 10, 1.22f, "tekst", true);//10 1,220000 tekst true
System.out.printf("%tA %tb %tc %n", new Date(), new Date(), new Date());//czwartek maj czw. maj 27 20:25:17 CEST 2021
//aby nie powtarzać tego samego argumentu kilka razy, możemy wskazywać konkretny argument
System.out.printf("%1$tA %1$tb %1$tc %n", new Date());//czwartek maj czw. maj 27 20:25:17 CEST 2021
String user = "user";
System.out.printf("Witaj %s, zostałeś zalogowany w %tA %2$tF", user, new Date());