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

      • 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:
        Calendar
      • Timestamp

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

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