# Class Date

java.lang.Object
java.util.Date

All Implemented Interfaces:
  `Comparable<Date>`

public class Date extends java.lang.Object implements Comparable<Date>
The class Date represents a specific instant in time, with millisecond precision. This class has been subset for the J2ME based on the JDK 1.3 Date class. Many methods and variables have been pruned, and other methods simplified, in an effort to reduce the size of this class. Although the Date class is intended to reflect coordinated universal time (UTC), it may not do so exactly, depending on the host environment of the Java Virtual Machine. Nearly all modern operating systems assume that 1 day = 24x60x60 = 86400 seconds in all cases. In UTC, however, about once every year or two there is an extra second, called a "leap second." The leap second is always added as the last second of the day, and always on December 31 or June 30. For example, the last minute of the year 1995 was 61 seconds long, thanks to an added leap second. Most computer clocks are not accurate enough to be able to reflect the leap-second distinction. Version: CLDC 1.1 03/13/2002 (Based on JDK 1.3) See Also:TimeZone, Calendar

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Date()`
  Allocates a Date object and initializes it to represent the current time specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT.
  `Date(long date)`
  Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `compareTo(Date arg0)`
  Compares this object to the specified object to determine their relative order.
  `boolean`
  `equals(java.lang.Object obj)`
  Compares two dates for equality.
  `long`
  `getTime()`
  Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `void`
  `setTime(long time)`
  Sets this Date object to represent a point in time that is time milliseconds after January 1, 1970 00:00:00 GMT.
  `String`
  `toString()`
  Converts this Date object to a String of the form: dow mon dd hh:mm:ss zzz yyyy where: dow is the day of the week (Sun, Mon, Tue, Wed, Thu, Fri, Sat).

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Date

    public Date()
    Allocates a Date object and initializes it to represent the current time specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT. See Also:System.currentTimeMillis()

  - ### Date

    public Date(long date)
    Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT. Parameters:date - the milliseconds since January 1, 1970, 00:00:00 GMT.See Also:System.currentTimeMillis()

- ## Method Details

  - ### equals

    public boolean equals(java.lang.Object obj)
    Compares two dates for equality. The result is true if and only if the argument is not null and is a Date object that represents the same point in time, to the millisecond, as this object. Thus, two Date objects are equal if and only if the getTime method returns the same long value for both.
    Overrides:
      `equals` in class `java.lang.Object`

  - ### getTime

    public long getTime()
    Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object.

  - ### hashCode

    public int hashCode()
    Returns a hash code value for this object. The result is the exclusive OR of the two halves of the primitive long value returned by the method. That is, the hash code is the value of the expression: (int)(this.getTime()^(this.getTime() >>> 32))
    Overrides:
      `hashCode` in class `java.lang.Object`

  - ### setTime

    public void setTime(long time)
    Sets this Date object to represent a point in time that is time milliseconds after January 1, 1970 00:00:00 GMT.

  - ### toString

    public String toString()
    Converts this Date object to a String of the form: dow mon dd hh:mm:ss zzz yyyy where: dow is the day of the week (Sun, Mon, Tue, Wed, Thu, Fri, Sat). mon is the month (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec). dd is the day of the month (01 through 31), as two decimal digits. hh is the hour of the day (00 through 23), as two decimal digits. mm is the minute within the hour (00 through 59), as two decimal digits. ss is the second within the minute (00 through 61, as two decimal digits. zzz is the time zone (and may reflect daylight savings time). If time zone information is not available, then zzz is empty - that is, it consists of no characters at all. yyyy is the year, as four decimal digits.
    Overrides:
      `toString` in class `java.lang.Object`

  - ### compareTo

    public int compareTo(Date arg0)
    Description copied from interface: `Comparable`

    Compares this object to the specified object to determine their relative order.

    ###### Parameters

    - `another`: the object to compare to this instance.

    ###### Returns

    Specified by:
      `compareTo` in interface `Comparable<Date>`
    Returns:

      a negative integer if this instance is less than `another`; a positive integer if this instance is greater than `another`; 0 if this instance has the same order as `another`.

      ###### Throws

      - `ClassCastException`: @throws ClassCastException if `another` cannot be converted into something comparable to `this` instance.