Class Date

java.lang.Object
java.util.Date
java.sql.Date
org.tentackle.common.Date
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Date>, Freezable

public class Date extends Date implements Freezable
Date with database semantics.

Differs from java.sql.Date when serialized/deserialized in different timezones. Databases don't provide a time and therefore no timezone for a date, i.e. when sent over wire to different locations a date should always remain the same for all timezones. In java.sql.Data, however, the epochal time is serialized which may lead to a different date when deserialized in another timezone. In Date the effective date is serialized as YYYYMMDD to provide the same semantics as databases do.

Furthermore, tentackle dates can be frozen, i.e. made immutable.

Author:
harald
See Also:
  • Constructor Details

    • Date

      public Date(long date)
      Constructs a Date object using the given milliseconds time value. If the given milliseconds value contains time information, the driver will set the time components to the time in the default time zone (the time zone of the Java virtual machine running the application) that corresponds to zero GMT.
      Parameters:
      date - milliseconds since January 1, 1970, 00:00:00 GMT not to exceed the milliseconds representation for the year 8099. A negative number indicates the number of milliseconds before January 1, 1970, 00:00:00 GMT.
    • Date

      public Date()
      Creates the current date.
  • Method Details

    • createFrozen

      public static Date createFrozen(long epoch)
      Creates a frozen date.
      Parameters:
      epoch - epochal milliseconds since January 1, 1970, 00:00:00 GMT
      Returns:
      the frozen date
    • valueOf

      public static Date valueOf(String str)
      Converts a string into a date.
      Parameters:
      str - the string
      Returns:
      the date
    • clone

      public Date clone()

      Cloned dates are always not frozen.

      Overrides:
      clone in class Date
    • freeze

      public void freeze()
      Description copied from interface: Freezable
      Makes this object immutable.
      Specified by:
      freeze in interface Freezable
    • setTime

      public void setTime(long date)

      Overridden to clear the lazy calendar and to check for frozen.

      Overrides:
      setTime in class Date
    • setYear

      @Deprecated public void setYear(int year)
      Deprecated.
      Overrides:
      setYear in class Date
    • setMonth

      @Deprecated public void setMonth(int month)
      Deprecated.
      Overrides:
      setMonth in class Date
    • setDate

      @Deprecated public void setDate(int date)
      Deprecated.
      Overrides:
      setDate in class Date
    • setHours

      @Deprecated public void setHours(int hours)
      Deprecated.
      Overrides:
      setHours in class Date
    • setMinutes

      @Deprecated public void setMinutes(int minutes)
      Deprecated.
      Overrides:
      setMinutes in class Date
    • setSeconds

      @Deprecated public void setSeconds(int seconds)
      Deprecated.
      Overrides:
      setSeconds in class Date