com.amazon.redshift.jdbc

## Class TimestampUtils

- java.lang.Object
- - com.amazon.redshift.jdbc.TimestampUtils

    public class TimestampUtils
    extends Object

Misc utils for handling time and date values.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`Date` `convertToDate(long millis, TimeZone tz)` Extracts the date part from a timestamp.
`Time` `convertToTime(long millis, TimeZone tz)` Extracts the time part from a timestamp.
`Calendar` `getSharedCalendar(TimeZone timeZone)` Get a shared calendar, applying the supplied time zone or the default time zone if null.
`boolean` `hasFastDefaultTimeZone()`
`static TimeZone` `parseBackendTimeZone(String timeZone)` Converts backend's TimeZone parameter to java format.
`String` `timeToString(Date time, boolean withTimeZone)` Returns the given time value as String matching what the current Redshift server would send in text mode.
`void` `toBinDate(TimeZone tz, byte[] bytes, Date value)` Converts the SQL Date to binary representation for `Oid.DATE`.
`Date` `toDate(Calendar cal, String s)`
`Date` `toDateBin(TimeZone tz, byte[] bytes)` Returns the SQL Date object matching the given bytes with `Oid.DATE`.
`LocalDateTime` `toLocalDateTime(String s)` Parse a string and return a LocalDateTime representing its value.
`LocalDateTime` `toLocalDateTimeBin(byte[] bytes)` Returns the local date time object matching the given bytes with `Oid.TIMESTAMP` or `Oid.TIMESTAMPTZ`.
`LocalTime` `toLocalTime(String s)` Parse a string and return a LocalTime representing its value.
`LocalTime` `toLocalTimeBin(byte[] bytes)` Returns the SQL Time object matching the given bytes with `Oid.TIME`.
`OffsetDateTime` `toOffsetDateTime(String s)` Parse a string and return a LocalDateTime representing its value.
`OffsetDateTime` `toOffsetDateTime(Time t)` Returns the offset date time object matching the given bytes with Oid#TIMETZ.
`OffsetDateTime` `toOffsetDateTimeBin(byte[] bytes)` Returns the offset date time object matching the given bytes with Oid#TIMESTAMPTZ.
`String` `toString(Calendar cal, Date x)`
`String` `toString(Calendar cal, Date x, boolean withTimeZone)`
`String` `toString(Calendar cal, Time x)`
`String` `toString(Calendar cal, Time x, boolean withTimeZone)`
`String` `toString(Calendar cal, Timestamp x)`
`String` `toString(Calendar cal, Timestamp x, boolean withTimeZone)`
`String` `toString(LocalDate localDate)`
`String` `toString(LocalDateTime localDateTime)` Formats `LocalDateTime` to be sent to the backend, thus it adds time zone.
`String` `toString(LocalTime localTime)`
`String` `toString(OffsetDateTime offsetDateTime)`
`Time` `toTime(Calendar cal, String s)`
`Time` `toTimeBin(TimeZone tz, byte[] bytes)` Returns the SQL Time object matching the given bytes with `Oid.TIME` or `Oid.TIMETZ`.
`Timestamp` `toTimestamp(Calendar cal, String s)` Parse a string and return a timestamp representing its value.
`Timestamp` `toTimestampBin(TimeZone tz, byte[] bytes, boolean timestamptz)` Returns the SQL Timestamp object matching the given bytes with `Oid.TIMESTAMP` or `Oid.TIMESTAMPTZ`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 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 RedshiftException

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:
  `RedshiftException` - If binary format could not be parsed.

#### toTime

    public Time toTime(Calendar cal,
                       String s)
                throws SQLException

Throws:
  `SQLException`

#### toDate

    public Date toDate(Calendar cal,
                       String s)
                throws SQLException

Throws:
  `SQLException`

#### 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(Calendar cal,
                           Timestamp x)

#### toString

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

#### toString

    public String toString(Calendar cal,
                           Date x)

#### toString

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

#### toString

    public String toString(Calendar cal,
                           Time x)

#### toString

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

#### toString

    public String toString(LocalDate localDate)

#### toString

    public String toString(LocalTime localTime)

#### toString

    public String toString(OffsetDateTime offsetDateTime)

#### 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 RedshiftException

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:
  `RedshiftException` - If binary format could not be parsed.

#### hasFastDefaultTimeZone

    public boolean hasFastDefaultTimeZone()

#### toTimeBin

    public Time toTimeBin(TimeZone tz,
                          byte[] bytes)
                   throws RedshiftException

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:
  `RedshiftException` - If binary format could not be parsed.

#### toLocalTimeBin

    public LocalTime toLocalTimeBin(byte[] bytes)
                             throws RedshiftException

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:
  `RedshiftException` - If binary format could not be parsed.

#### toTimestampBin

    public Timestamp toTimestampBin(TimeZone tz,
                                    byte[] bytes,
                                    boolean timestamptz)
                             throws RedshiftException

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:
  `RedshiftException` - If binary format could not be parsed.

#### toLocalDateTimeBin

    public LocalDateTime toLocalDateTimeBin(byte[] bytes)
                                     throws RedshiftException

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:
  `RedshiftException` - 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 Redshift 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 RedshiftException

Converts the SQL Date to binary representation for `Oid.DATE`.

Parameters:
  `tz` - The timezone used.
  `bytes` - The binary encoded date value.
  `value` - value
Throws:
  `RedshiftException` - 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