Package org.postgresql.jdbc
Class TimestampUtils
- java.lang.Object
-
- org.postgresql.jdbc.TimestampUtils
-
public class TimestampUtils extends java.lang.Object
Misc utils for handling time and date values.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.sql.Date
convertToDate(long millis, java.util.TimeZone tz)
Extracts the date part from a timestamp.java.sql.Time
convertToTime(long millis, java.util.TimeZone tz)
Extracts the time part from a timestamp.java.util.Calendar
getSharedCalendar(java.util.TimeZone timeZone)
Get a shared calendar, applying the supplied time zone or the default time zone if null.boolean
hasFastDefaultTimeZone()
static java.util.TimeZone
parseBackendTimeZone(java.lang.String timeZone)
Converts backend's TimeZone parameter to java format.java.lang.String
timeToString(java.util.Date time, boolean withTimeZone)
Returns the given time value as String matching what the current postgresql server would send in text mode.void
toBinDate(java.util.TimeZone tz, byte[] bytes, java.sql.Date value)
Converts the SQL Date to binary representation forOid.DATE
.java.sql.Date
toDate(java.util.Calendar cal, java.lang.String s)
java.sql.Date
toDateBin(java.util.TimeZone tz, byte[] bytes)
Returns the SQL Date object matching the given bytes withOid.DATE
.java.time.LocalDateTime
toLocalDateTime(java.lang.String s)
Parse a string and return a LocalDateTime representing its value.java.time.LocalDateTime
toLocalDateTimeBin(java.util.TimeZone tz, byte[] bytes)
Returns the local date time object matching the given bytes withOid.TIMESTAMP
orOid.TIMESTAMPTZ
.java.lang.String
toString(java.time.LocalDate localDate)
java.lang.String
toString(java.time.LocalDateTime localDateTime)
java.lang.String
toString(java.time.LocalTime localTime)
java.lang.String
toString(java.time.OffsetDateTime offsetDateTime)
java.lang.String
toString(java.util.Calendar cal, java.sql.Date x)
java.lang.String
toString(java.util.Calendar cal, java.sql.Date x, boolean withTimeZone)
java.lang.String
toString(java.util.Calendar cal, java.sql.Time x)
java.lang.String
toString(java.util.Calendar cal, java.sql.Time x, boolean withTimeZone)
java.lang.String
toString(java.util.Calendar cal, java.sql.Timestamp x)
java.lang.String
toString(java.util.Calendar cal, java.sql.Timestamp x, boolean withTimeZone)
java.sql.Time
toTime(java.util.Calendar cal, java.lang.String s)
java.sql.Time
toTimeBin(java.util.TimeZone tz, byte[] bytes)
Returns the SQL Time object matching the given bytes withOid.TIME
orOid.TIMETZ
.java.sql.Timestamp
toTimestamp(java.util.Calendar cal, java.lang.String s)
Parse a string and return a timestamp representing its value.java.sql.Timestamp
toTimestampBin(java.util.TimeZone tz, byte[] bytes, boolean timestamptz)
Returns the SQL Timestamp object matching the given bytes withOid.TIMESTAMP
orOid.TIMESTAMPTZ
.
-
-
-
Method Detail
-
toTimestamp
public java.sql.Timestamp toTimestamp(java.util.Calendar cal, java.lang.String s) throws java.sql.SQLException
Parse a string and return a timestamp representing its value.- Parameters:
cal
- calendar to be used to parse the input strings
- The ISO formated date string to parse.- Returns:
- null if s is null or a timestamp of the parsed string s.
- Throws:
java.sql.SQLException
- if there is a problem parsing s.
-
toLocalDateTime
public java.time.LocalDateTime toLocalDateTime(java.lang.String s) throws java.sql.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:
java.sql.SQLException
- if there is a problem parsing s.
-
toTime
public java.sql.Time toTime(java.util.Calendar cal, java.lang.String s) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
toDate
public java.sql.Date toDate(java.util.Calendar cal, java.lang.String s) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getSharedCalendar
public java.util.Calendar getSharedCalendar(java.util.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 java.lang.String toString(java.util.Calendar cal, java.sql.Timestamp x)
-
toString
public java.lang.String toString(java.util.Calendar cal, java.sql.Timestamp x, boolean withTimeZone)
-
toString
public java.lang.String toString(java.util.Calendar cal, java.sql.Date x)
-
toString
public java.lang.String toString(java.util.Calendar cal, java.sql.Date x, boolean withTimeZone)
-
toString
public java.lang.String toString(java.util.Calendar cal, java.sql.Time x)
-
toString
public java.lang.String toString(java.util.Calendar cal, java.sql.Time x, boolean withTimeZone)
-
toString
public java.lang.String toString(java.time.LocalDate localDate)
-
toString
public java.lang.String toString(java.time.LocalTime localTime)
-
toString
public java.lang.String toString(java.time.OffsetDateTime offsetDateTime)
-
toString
public java.lang.String toString(java.time.LocalDateTime localDateTime)
-
toDateBin
public java.sql.Date toDateBin(java.util.TimeZone tz, byte[] bytes) throws PSQLException
Returns the SQL Date object matching the given bytes withOid.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 java.sql.Time toTimeBin(java.util.TimeZone tz, byte[] bytes) throws PSQLException
Returns the SQL Time object matching the given bytes withOid.TIME
orOid.TIMETZ
.- Parameters:
tz
- The timezone used when received data isOid.TIME
, ignored if data already containsOid.TIMETZ
.bytes
- The binary encoded time value.- Returns:
- The parsed time object.
- Throws:
PSQLException
- If binary format could not be parsed.
-
toTimestampBin
public java.sql.Timestamp toTimestampBin(java.util.TimeZone tz, byte[] bytes, boolean timestamptz) throws PSQLException
Returns the SQL Timestamp object matching the given bytes withOid.TIMESTAMP
orOid.TIMESTAMPTZ
.- Parameters:
tz
- The timezone used when received data isOid.TIMESTAMP
, ignored if data already containsOid.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 java.time.LocalDateTime toLocalDateTimeBin(java.util.TimeZone tz, byte[] bytes) throws PSQLException
Returns the local date time object matching the given bytes withOid.TIMESTAMP
orOid.TIMESTAMPTZ
.- Parameters:
tz
- time zone to usebytes
- 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 java.sql.Date convertToDate(long millis, java.util.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 java.sql.Time convertToTime(long millis, java.util.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 java.lang.String timeToString(java.util.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 valuewithTimeZone
- whether timezone should be added- Returns:
- given time value as String
-
toBinDate
public void toBinDate(java.util.TimeZone tz, byte[] bytes, java.sql.Date value) throws PSQLException
Converts the SQL Date to binary representation forOid.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 java.util.TimeZone parseBackendTimeZone(java.lang.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
-
-