Printing Date/Time in a Specified Format
Problem
You want to print the date and/or time in a specified format.
Solution
Use a java.text.DateFormat.
Discussion
To print the date in the correct format for whatever locale your
software lands in, simply use the default
DateFormat formatter, which is obtained by calling
DateFormat.getInstance( )
.
Suppose you want the date printed, but instead of the default format
“Sun Jul 18 16:14:09 PDT 1999”, you want it printed like
“Sun 1999.07.18 at 04:14:09 PM PDT”. A look at the
Javadoc page for
SimpleDateFormat
-- the only non-abstract subclass of
DateFormat -- reveals that it has a rich
language for specifying date and time formatting. To use a default
format, of course, we can just use the Date
object’s toString( )
method, and for a localized default
format, we use DateFormat.getInstance( ). But to
have full control and get the “Sun 1999.07.18 at 04:14:09 PM
PDT”, we construct an instance explicitly, like so:
new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
E means the day of the week;
yyyy, MM, and
dd are obviously year, month, and day. The quoted
string 'at' means the string “at”.
hh:mm:ss is the time; a means
A.M. or P.M., and zzz means the time zone. Some of
these are more memorable than others; I find the
zzz tends to put me to sleep. Here’s the
code:
// DateDemo.java Date dNow = new Date( ); /* Simple, Java 1.0 date printing */ System.out.println("It is now " + dNow.toString( )); // Use a SimpleDateFormat to print the date ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access