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