Class Timestamp

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

public class Timestamp extends Timestamp implements Freezable
Timestamp with UTC option.

Differs from java.sql.Timestamp when serialized/deserialized in different timezones. By default, if timestamps are serialized and deserialized in different timezones, their representation may differ according to the GMT-offset and/or daylight saving. This is okay for most cases. In some cases, however, a timestamp should not be converted, i.e. regarded as fixed and related to some timezone by convention, for example UTC. This is what the UTC-attribute and the tentackle model's [UTC]-option is provided for.

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

Author:
harald
See Also:
  • Constructor Details

    • Timestamp

      public Timestamp(long time)
      Constructs a Timestamp object using a milliseconds time value. The integral seconds are stored in the underlying date value; the fractional seconds are stored in the nanos field of the Timestamp object.
      Parameters:
      time - milliseconds since January 1, 1970, 00:00:00 GMT. A negative number is the number of milliseconds before January 1, 1970, 00:00:00 GMT.
      See Also:
    • Timestamp

      public Timestamp()
      Creates the current timestamp.
  • Method Details

    • createFrozen

      public static Timestamp createFrozen(long epoch, int nanos)
      Creates a frozen timestamp.
      Parameters:
      epoch - epochal milliseconds since January 1, 1970, 00:00:00 GMT
      nanos - the new fractional seconds component
      Returns:
      the frozen timestamp
    • setUTC

      public static void setUTC(Timestamp timestamp, boolean utc)
      Sets the UTC flag null-safe.
      Method provided to reduce generated code.
      Parameters:
      timestamp - the timestamp, may be null
      utc - the UTC flag
    • valueOf

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

      public Timestamp clone()

      Cloned timestamps are always not frozen.

      Overrides:
      clone in class Date
    • setUTC

      public void setUTC(boolean utc)
      Sets the UTC flag.

      Timestamps with UTC set are serialized and deserialized without timezone.

      Parameters:
      utc - the UTC flag
    • isUTC

      public boolean isUTC()
      Gets the UTC flag.
      Returns:
      true if timestamp is UTC
    • freeze

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

      public void setTime(long timestamp)

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

      Overrides:
      setTime in class Timestamp
    • setNanos

      public void setNanos(int n)
      Overrides:
      setNanos in class Timestamp
    • 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