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