The conversion specifiers %t can format time and date data.
The %t specifier need a suffix to specify the portion and precise format of the time or date.
The suffixes are shown in the following table.
Suffix | Replaced By |
---|---|
a | Abbreviated weekday name |
A | Full weekday name |
b | Abbreviated month name |
B | Full month name |
c | Standard date and time string formatted as day month date hh::mm:ss timezone year |
C | First two digits of year |
d | Day of month as a decimal (01-31) |
D | month/day/year |
e | Day of month as a decimal (1-31) |
F | year-month-day |
h | Abbreviated month name |
H | Hour (00 to 23) |
I | Hour (01 to 12) |
j | Day of year as a decimal (001 to 366) |
k | Hour (0 to 23) |
l | Hour (1 to 12) |
L | Millisecond (000 to 999) |
m | Month as decimal (01 to 13) |
M | Minute as decimal (00 to 59) |
N | Nanosecond (000000000 to 999999999) |
p | Locale's equivalent of AM or PM in lowercase |
Q | Milliseconds from 1/1/1970 |
r | hh:mm:ss (12-hour format) |
R | hh:mm (24-hour format) |
S | Seconds (00 to 60) |
s | Seconds from 1/1/1970 UTC |
T | hh:mm:ss (24-hour format) |
y | Year in decimal without century (00 to 99) |
Y | Year in decimal including century (0001 to 9999) |
z | Offset from UTC |
Z | Time zone name |
For example, to display minutes, you would use %tM, where M indicates minutes in a two-character field.
The argument corresponding to the %t specifier must be of type Calendar, Date, Long, or long or new Java data time classes such as LocalDate
.
Here is a program that demonstrates several of the formats:
// Formatting time and date. import java.util.Calendar; import java.util.Formatter; public class Main { public static void main(String args[]) { Formatter fmt = new Formatter(); Calendar cal = Calendar.getInstance(); // Display standard 12-hour time format. fmt.format("%tr", cal); System.out.println(fmt); //w w w .j av a2 s .com fmt.close(); // Display complete time and date information. fmt = new Formatter(); fmt.format("%tc", cal); System.out.println(fmt); fmt.close(); // Display just hour and minute. fmt = new Formatter(); fmt.format("%tl:%tM", cal, cal); System.out.println(fmt); fmt.close(); // Display month by name and number. fmt = new Formatter(); fmt.format("%tB %tb %tm", cal, cal, cal); System.out.println(fmt); fmt.close(); } }