A Date
object represents a precise moment in time,
down to the millisecond. Dates are represented as a
long
that counts the number of milliseconds since midnight,
January 1, 1970, Greenwich Mean Time.
Does this have a year 2000 problem? If so in what year?
To create a Date
object for the current date and
time use the noargs Date()
constructor like this:
Date now = new Date();
To create a Date
object for a specific time, pass
the number of milliseconds since midnight, January 1, 1970,
Greenwich Meantime to the constructor, like this:
Date midnight_jan2_1970 = new
Date(24L*60L*60L*1000L);
You can return the number of milliseconds in the
Date
as a long
, using the
getTime()
method. For example, to time a block of code, you
might do this
Date d1 = new Date();
// timed code goes here
Date d2 = new Date();
long elapsed_time = d2.getTime() - d1.getTime();
System.out.println("That took " + elapsed_time + " milliseconds");
You can change a Date
by passing the new date as a
number of milliseconds since midnight, January 1, 1970, GMT, to the
setTime()
method, like this:
Date midnight_jan2_1970 = new Date();
midnight_jan2_1970.setTime(24L*60L*60L*1000L);
The before()
method returns true if this Date
is
before the Date
argument, false if it's not. For example
if (midnight_jan2_1970.before(new Date())) {
The after()
method returns true if this
Date
is after the Date argument, false if it's not. For
example
if (midnight_jan2_1970.after(new Date())) {
The Date
class also has the usual
hashCode()
, equals()
, and
toString()
methods.