Finding Today’s Date
Problem
You want to find today’s date.
Solution
Use a Date
object’s toString( )
method.
Discussion
The quick and simple way to get today’s date and time is to
construct a Date
object with no arguments in the
constructor call, and call its toString( )
method:
// Date0.java System.out.println(new java.util.Date( ));
However, for reasons just outlined, we want to use a
Calendar
object. Just use
Calendar.getInstance().getTime( )
, which returns a
Date
object (even though the name makes it seem
like it should return a Time
value[21]), and print the
resulting Date
object, either using its
toString( )
method or a
DateFormat
object. You might be tempted to
construct a GregorianCalendar
object, using the
no-argument constructor, but if you do this, your program will not
give the correct answer when non-western
locales get Calendar
subclasses of their own (in some future release of Java). The static
factory method Calendar.getInstance( )
returns a localized
Calendar
subclass for the locale you are in. In
North America and Europe it will likely return a
GregorianCalendar
, but in other parts of the world
it might (someday) return a different kind of
Calendar
.
Do not try to use a
GregorianCalendar
’s toString( )
method; the results are truly impressive, but not very interesting.
Sun’s implementation prints all its internal state information;
Kaffe’s inherits Object
’s
toString( )
, which just prints the class name and
the hashcode. Neither is useful for our purposes.
// Date1,.javaj ...
Get Java Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.