パッケージ org.postgresql.jdbc

クラス TimestampUtils

java.lang.Object
org.postgresql.jdbc.TimestampUtils

public class TimestampUtils extends Object
Misc utils for handling time and date values.
  • コンストラクタの詳細

    • TimestampUtils

      public TimestampUtils(boolean usesDouble, Provider<TimeZone> timeZoneProvider)
  • メソッドの詳細

    • toTimestamp

      public @PolyNull Timestamp toTimestamp(@Nullable Calendar cal, @PolyNull String s) throws SQLException
      Parse a string and return a timestamp representing its value.
      パラメータ:
      cal - calendar to be used to parse the input string
      s - The ISO formated date string to parse.
      戻り値:
      null if s is null or a timestamp of the parsed string s.
      例外:
      SQLException - if there is a problem parsing s.
    • toLocalTime

      public @PolyNull LocalTime toLocalTime(@PolyNull String s) throws SQLException
      Parse a string and return a LocalTime representing its value.
      パラメータ:
      s - The ISO formated time string to parse.
      戻り値:
      null if s is null or a LocalTime of the parsed string s.
      例外:
      SQLException - if there is a problem parsing s.
    • toOffsetTimeBin

      public OffsetTime toOffsetTimeBin(byte[] bytes) throws PSQLException
      Returns the offset time object matching the given bytes with Oid#TIMETZ or Oid#TIME.
      パラメータ:
      bytes - The binary encoded TIMETZ/TIME value.
      戻り値:
      The parsed offset time object.
      例外:
      PSQLException - If binary format could not be parsed.
    • toOffsetTime

      public @PolyNull OffsetTime toOffsetTime(@PolyNull String s) throws SQLException
      Parse a string and return a OffsetTime representing its value.
      パラメータ:
      s - The ISO formated time string to parse.
      戻り値:
      null if s is null or a OffsetTime of the parsed string s.
      例外:
      SQLException - if there is a problem parsing s.
    • toLocalDateTime

      public @PolyNull LocalDateTime toLocalDateTime(@PolyNull String s) throws SQLException
      Parse a string and return a LocalDateTime representing its value.
      パラメータ:
      s - The ISO formated date string to parse.
      戻り値:
      null if s is null or a LocalDateTime of the parsed string s.
      例外:
      SQLException - if there is a problem parsing s.
    • toOffsetDateTime

      @Deprecated public OffsetDateTime toOffsetDateTime(Time t)
      推奨されていません。
      was used internally, and not used anymore
      Returns the offset date time object matching the given bytes with Oid#TIMETZ. Not used internally anymore, function is here to retain compatibility with previous versions
      パラメータ:
      t - the time value
      戻り値:
      the matching offset date time
    • toOffsetDateTime

      public @PolyNull OffsetDateTime toOffsetDateTime(@PolyNull String s) throws SQLException
      Parse a string and return a OffsetDateTime representing its value.
      パラメータ:
      s - The ISO formatted date string to parse.
      戻り値:
      null if s is null or a OffsetDateTime of the parsed string s.
      例外:
      SQLException - if there is a problem parsing s.
    • toOffsetDateTimeBin

      public OffsetDateTime toOffsetDateTimeBin(byte[] bytes) throws PSQLException
      Returns the offset date time object matching the given bytes with Oid#TIMESTAMPTZ.
      パラメータ:
      bytes - The binary encoded local date time value.
      戻り値:
      The parsed local date time object.
      例外:
      PSQLException - If binary format could not be parsed.
    • toTime

      public @PolyNull Time toTime(@Nullable Calendar cal, @PolyNull String s) throws SQLException
      例外:
      SQLException
    • toDate

      public @PolyNull Date toDate(@Nullable Calendar cal, @PolyNull String s) throws SQLException
      例外:
      SQLException
    • getSharedCalendar

      public Calendar getSharedCalendar(@Nullable TimeZone timeZone)
      Get a shared calendar, applying the supplied time zone or the default time zone if null.
      パラメータ:
      timeZone - time zone to be set for the calendar
      戻り値:
      The shared calendar.
    • toString

      public String toString(@Nullable Calendar cal, Timestamp x)
    • toString

      public String toString(@Nullable Calendar cal, Timestamp x, boolean withTimeZone)
    • toString

      public String toString(@Nullable Calendar cal, Date x)
    • toString

      public String toString(@Nullable Calendar cal, Date x, boolean withTimeZone)
    • toString

      public String toString(@Nullable Calendar cal, Time x)
    • toString

      public String toString(@Nullable Calendar cal, Time x, boolean withTimeZone)
    • toString

      public String toString(LocalDate localDate)
    • toString

      public String toString(LocalTime localTime)
    • toString

      public String toString(OffsetTime offsetTime)
    • toStringOffsetTimeBin

      public String toStringOffsetTimeBin(byte[] value) throws PSQLException
      Converts timetz to string taking client time zone (timeZoneProvider) into account.
      パラメータ:
      value - binary representation of timetz
      戻り値:
      string representation of timetz
      例外:
      PSQLException
    • withClientOffsetSameInstant

      public OffsetTime withClientOffsetSameInstant(OffsetTime input)
      PostgreSQL does not store the time zone in the binary representation of timetz. However, we want to preserve the output of getString() in both binary and text formats So we try a client time zone when serializing OffsetTime to string.
      パラメータ:
      input - input offset time
      戻り値:
      adjusted offset time (it represents the same instant as the input one)
    • toString

      public String toString(OffsetDateTime offsetDateTime)
    • toStringOffsetDateTime

      public String toStringOffsetDateTime(byte[] value) throws PSQLException
      Converts timestamptz to string taking client time zone (timeZoneProvider) into account.
      パラメータ:
      value - binary representation of timestamptz
      戻り値:
      string representation of timestamptz
      例外:
      PSQLException
    • withClientOffsetSameInstant

      public OffsetDateTime withClientOffsetSameInstant(OffsetDateTime input)
      PostgreSQL does not store the time zone in the binary representation of timestamptz. However, we want to preserve the output of getString() in both binary and text formats So we try a client time zone when serializing OffsetDateTime to string.
      パラメータ:
      input - input offset date time
      戻り値:
      adjusted offset date time (it represents the same instant as the input one)
    • 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)
      パラメータ:
      localDateTime - The local date to format as a String
      戻り値:
      The formatted local date
    • toDateBin

      public Date toDateBin(@Nullable TimeZone tz, byte[] bytes) throws PSQLException
      Returns the SQL Date object matching the given bytes with Oid.DATE.
      パラメータ:
      tz - The timezone used.
      bytes - The binary encoded date value.
      戻り値:
      The parsed date object.
      例外:
      PSQLException - If binary format could not be parsed.
    • hasFastDefaultTimeZone

      public boolean hasFastDefaultTimeZone()
    • toTimeBin

      public Time toTimeBin(@Nullable TimeZone tz, byte[] bytes) throws PSQLException
      Returns the SQL Time object matching the given bytes with Oid.TIME or Oid.TIMETZ.
      パラメータ:
      tz - The timezone used when received data is Oid.TIME, ignored if data already contains Oid.TIMETZ.
      bytes - The binary encoded time value.
      戻り値:
      The parsed time object.
      例外:
      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.
      パラメータ:
      bytes - The binary encoded time value.
      戻り値:
      The parsed time object.
      例外:
      PSQLException - If binary format could not be parsed.
    • toTimestampBin

      public Timestamp toTimestampBin(@Nullable TimeZone tz, byte[] bytes, boolean timestamptz) throws PSQLException
      Returns the SQL Timestamp object matching the given bytes with Oid.TIMESTAMP or Oid.TIMESTAMPTZ.
      パラメータ:
      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.
      戻り値:
      The parsed timestamp object.
      例外:
      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.
      パラメータ:
      bytes - The binary encoded local date time value.
      戻り値:
      The parsed local date time object.
      例外:
      PSQLException - If binary format could not be parsed.
    • toLocalDateBin

      public LocalDate toLocalDateBin(byte[] bytes) throws PSQLException
      Returns the local date time object matching the given bytes with Oid.DATE or Oid.TIMESTAMP.
      パラメータ:
      bytes - The binary encoded local date value.
      戻り値:
      The parsed local date object.
      例外:
      PSQLException - If binary format could not be parsed.
    • convertToDate

      public Date convertToDate(long millis, @Nullable TimeZone tz)
      Extracts the date part from a timestamp.
      パラメータ:
      millis - The timestamp from which to extract the date.
      tz - The time zone of the date.
      戻り値:
      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.
      パラメータ:
      millis - The timestamp from which to extract the time.
      tz - timezone to use.
      戻り値:
      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.
      パラメータ:
      time - time value
      withTimeZone - whether timezone should be added
      戻り値:
      given time value as String
    • toBinDate

      public void toBinDate(@Nullable TimeZone tz, byte[] bytes, Date value) throws PSQLException
      Converts the SQL Date to binary representation for Oid.DATE.
      パラメータ:
      tz - The timezone used.
      bytes - The binary encoded date value.
      value - value
      例外:
      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.
      パラメータ:
      timeZone - time zone to use
      戻り値:
      java TimeZone