Class TimestampUtils


  • public class TimestampUtils
    extends Object
    Misc utils for handling time and date values.
    • Constructor Detail

      • TimestampUtils

        public TimestampUtils​(boolean usesDouble,
                              Provider<TimeZone> timeZoneProvider)
    • Method Detail

      • toTimestamp

        public Timestamp toTimestamp​(Calendar cal,
                                     String s)
                              throws SQLException
        Parse a string and return a timestamp representing its value.
        Parameters:
        cal - calendar to be used to parse the input string
        s - The ISO formated date string to parse.
        Returns:
        null if s is null or a timestamp of the parsed string s.
        Throws:
        SQLException - if there is a problem parsing s.
      • toLocalTime

        public LocalTime toLocalTime​(String s)
                              throws SQLException
        Parse a string and return a LocalTime representing its value.
        Parameters:
        s - The ISO formated time string to parse.
        Returns:
        null if s is null or a LocalTime of the parsed string s.
        Throws:
        SQLException - if there is a problem parsing s.
      • toLocalDateTime

        public LocalDateTime toLocalDateTime​(String s)
                                      throws SQLException
        Parse a string and return a LocalDateTime representing its value.
        Parameters:
        s - The ISO formated date string to parse.
        Returns:
        null if s is null or a LocalDateTime of the parsed string s.
        Throws:
        SQLException - if there is a problem parsing s.
      • toOffsetDateTime

        public OffsetDateTime toOffsetDateTime​(String s)
                                        throws SQLException
        Parse a string and return a LocalDateTime representing its value.
        Parameters:
        s - The ISO formated date string to parse.
        Returns:
        null if s is null or a LocalDateTime of the parsed string s.
        Throws:
        SQLException - if there is a problem parsing s.
      • toOffsetDateTime

        public OffsetDateTime toOffsetDateTime​(Time t)
        Returns the offset date time object matching the given bytes with Oid#TIMETZ.
        Parameters:
        t - the time value
        Returns:
        the matching offset date time
      • toOffsetDateTimeBin

        public OffsetDateTime toOffsetDateTimeBin​(byte[] bytes)
                                           throws PSQLException
        Returns the offset date time object matching the given bytes with Oid#TIMESTAMPTZ.
        Parameters:
        bytes - The binary encoded local date time value.
        Returns:
        The parsed local date time object.
        Throws:
        PSQLException - If binary format could not be parsed.
      • getSharedCalendar

        public Calendar getSharedCalendar​(TimeZone timeZone)
        Get a shared calendar, applying the supplied time zone or the default time zone if null.
        Parameters:
        timeZone - time zone to be set for the calendar
        Returns:
        The shared calendar.
      • toString

        public String toString​(LocalDateTime localDateTime)
        Formats LocalDateTime to be sent to the backend, thus it adds time zone. Do not use this method in ResultSet.getString(int)
        Parameters:
        localDateTime - The local date to format as a String
        Returns:
        The formatted local date
      • toDateBin

        public Date toDateBin​(TimeZone tz,
                              byte[] bytes)
                       throws PSQLException
        Returns the SQL Date object matching the given bytes with Oid.DATE.
        Parameters:
        tz - The timezone used.
        bytes - The binary encoded date value.
        Returns:
        The parsed date object.
        Throws:
        PSQLException - If binary format could not be parsed.
      • hasFastDefaultTimeZone

        public boolean hasFastDefaultTimeZone()
      • toTimeBin

        public Time toTimeBin​(TimeZone tz,
                              byte[] bytes)
                       throws PSQLException
        Returns the SQL Time object matching the given bytes with Oid.TIME or Oid.TIMETZ.
        Parameters:
        tz - The timezone used when received data is Oid.TIME, ignored if data already contains Oid.TIMETZ.
        bytes - The binary encoded time value.
        Returns:
        The parsed time object.
        Throws:
        PSQLException - If binary format could not be parsed.
      • toLocalTimeBin

        public LocalTime toLocalTimeBin​(byte[] bytes)
                                 throws PSQLException
        Returns the SQL Time object matching the given bytes with Oid.TIME.
        Parameters:
        bytes - The binary encoded time value.
        Returns:
        The parsed time object.
        Throws:
        PSQLException - If binary format could not be parsed.
      • toTimestampBin

        public Timestamp toTimestampBin​(TimeZone tz,
                                        byte[] bytes,
                                        boolean timestamptz)
                                 throws PSQLException
        Returns the SQL Timestamp object matching the given bytes with Oid.TIMESTAMP or Oid.TIMESTAMPTZ.
        Parameters:
        tz - The timezone used when received data is Oid.TIMESTAMP, ignored if data already contains Oid.TIMESTAMPTZ.
        bytes - The binary encoded timestamp value.
        timestamptz - True if the binary is in GMT.
        Returns:
        The parsed timestamp object.
        Throws:
        PSQLException - If binary format could not be parsed.
      • toLocalDateTimeBin

        public LocalDateTime toLocalDateTimeBin​(byte[] bytes)
                                         throws PSQLException
        Returns the local date time object matching the given bytes with Oid.TIMESTAMP or Oid.TIMESTAMPTZ.
        Parameters:
        bytes - The binary encoded local date time value.
        Returns:
        The parsed local date time object.
        Throws:
        PSQLException - If binary format could not be parsed.
      • convertToDate

        public Date convertToDate​(long millis,
                                  TimeZone tz)
        Extracts the date part from a timestamp.
        Parameters:
        millis - The timestamp from which to extract the date.
        tz - The time zone of the date.
        Returns:
        The extracted date.
      • convertToTime

        public Time convertToTime​(long millis,
                                  TimeZone tz)
        Extracts the time part from a timestamp. This method ensures the date part of output timestamp looks like 1970-01-01 in given timezone.
        Parameters:
        millis - The timestamp from which to extract the time.
        tz - timezone to use.
        Returns:
        The extracted time.
      • timeToString

        public String timeToString​(Date time,
                                   boolean withTimeZone)
        Returns the given time value as String matching what the current postgresql server would send in text mode.
        Parameters:
        time - time value
        withTimeZone - whether timezone should be added
        Returns:
        given time value as String
      • toBinDate

        public void toBinDate​(TimeZone tz,
                              byte[] bytes,
                              Date value)
                       throws PSQLException
        Converts the SQL Date to binary representation for Oid.DATE.
        Parameters:
        tz - The timezone used.
        bytes - The binary encoded date value.
        value - value
        Throws:
        PSQLException - If binary format could not be parsed.
      • parseBackendTimeZone

        public static TimeZone parseBackendTimeZone​(String timeZone)
        Converts backend's TimeZone parameter to java format. Notable difference: backend's gmt-3 is GMT+03 in Java.
        Parameters:
        timeZone - time zone to use
        Returns:
        java TimeZone