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 ...