A year y is represented by the integer y - 1900. A month is represented by an integer form 0 to 11; 0 is January, 1 is February, and so forth; thus 11 is December. A date (day of month) is represented by an integer from 1 to 31 in the usual manner. An hour is represented by an integer from 0 to 23. Thus, the hour from midnight to 1 a.m. is hour 0, and the hour from noon to 1 p.m. is hour 12. A minute is represented by an integer from 0 to 59 in the usual manner. A second is represented by an integer from 0 to 60; the value 60 occurs only for leap seconds and even then only in Java implementations that actually track leap seconds correctly. In all cases, arguments given to methods for these purposes need not fall within the indicated ranges; for example, a date may be specified as January 32 and is interpreted as meaning February 1. public Date() Allocates a Date object and initializes it so that it represents the time at which it was allocated measured to the nearest millisecond. public Date(long date) Allocates a Date object and initializes it to represent the specified number of milliseconds since January 1, 1970, 00:00:00 GMT. public boolean after(Date when) Tests if this date is after the specified date. public boolean before(Date when) Tests if this date is before the specified date. public boolean equals(Object obj) Compares two dates. public long getTime() Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this date. public String toString() Creates a canonical string representation of the date.