Class 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:
    Serialized Form
    • Constructor Detail

      • 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 Detail

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