Package oracle.sql

Class DATE

All Implemented Interfaces:
Serializable, oracle.jdbc.internal.OracleDate

public class DATE extends Datum implements oracle.jdbc.internal.OracleDate
DATE Class


The DATE class provides conversions between the Oracle Date (ldx_t) data type and Java classes java.sql.Date, java.sql.Time, java.sql.Timestamp

The internal data for this object is stored as a seven byte array in the super class' storage area. The bytes are arranged as follows:

      Byte       Represents
       0         Century (19 for 1990)
       1         Decade  (90 for 1990)
       2         Month
       3         Day      
       4         Hour
       5         Minute
       6         Seconds
  

Static methods are used for conversions.

See Also:
  • Field Details

  • Constructor Details

    • DATE

      public DATE()
      Constructs a DATE object initialized to 1/1/1970.
    • DATE

      public DATE(byte[] date)
      Create a DATE object represented by the given Oracle Date.
      Parameters:
      date - Oracle DATE
    • DATE

      public DATE(Date date)
      Create a DATE object given a Java Date object.
      Parameters:
      date - Java Date object
    • DATE

      public DATE(Time time)
      Create a DATE object given a Java Time object.
      Parameters:
      time - Java Time object
    • DATE

      public DATE(Timestamp timestamp)
      Create a DATE object given a Java Timestamp object
      Parameters:
      timestamp - Java Timestamp object
    • DATE

      public DATE(Date date, Calendar cal)
      Create a DATE object given a Java Date object and a Calendar
      Parameters:
      date - Java Date object
      cal - Java Calendar object which encapsulates the timezone information of date
    • DATE

      public DATE(Time time, Calendar cal)
      Create a DATE object given a Java Time object and a Calendar
      Parameters:
      time - Java Time object
      cal - Java Calendar object which encapsulates the timezone information of time
    • DATE

      public DATE(Timestamp timestamp, Calendar cal)
      Create a DATE object given a Java Timestamp object and a Calendar
      Parameters:
      timestamp - Java Timestamp object
      cal - Java Calendar object which encapsulates the timezone information of timestamp
    • DATE

      public DATE(String str)
      Create a DATE object given a Java String object.
      Parameters:
      str - Java String object
    • DATE

      public DATE(String str, boolean lenient) throws ParseException
      Create a DATE object given a Java String object.
      Parameters:
      str - Java String object
      lenient - Java Boolean variable
      Throws:
      ParseException
    • DATE

      public DATE(String str, Calendar cal)
      Create a DATE object given a Java String object and a Calendar
      Parameters:
      str - Java String object
      cal - Java Calendar object which encapsulates the timezone information for interpreting str
    • DATE

      public DATE(Object obj) throws SQLException
      Constructs a DATE object initialized to the value specified by the object
      Parameters:
      obj - Object value
      obj - Object value
      obj - Object value
      Throws:
      SQLException - if initialization is not allowed
    • DATE

      public DATE(Object obj, Calendar cal) throws SQLException
      Constructs a DATE object initialized to the value specified by the object and a Calendar
      Parameters:
      obj - Object value
      cal - Calendar to use
      obj - Object value
      obj - Object value
      cal - Calendar which encapsulates the timezone information of obj
      Throws:
      SQLException - if initialization is not allowed
    • DATE

      public DATE(LocalDate ld) throws SQLException
      Create a DATE object given a Java LocalDate object
      Parameters:
      ld - Java LocalDate object
      Throws:
      SQLException
    • DATE

      public DATE(LocalDateTime ldt) throws SQLException
      Create a DATE object given a Java LocalDateTime object
      Parameters:
      ldt - Java LocalDateTime object
      Throws:
      SQLException
    • DATE

      public DATE(LocalTime lt) throws SQLException
      Create a DATE object given a Java LocalTime object
      Parameters:
      lt - Java LocalTime object
      Throws:
      SQLException
    • DATE

      public DATE(OffsetDateTime odt) throws SQLException
      Create a DATE object given a Java OffsetDateTime object
      Parameters:
      odt - Java OffsetDateTime object
      Throws:
      SQLException
    • DATE

      public DATE(OffsetTime ot) throws SQLException
      Create a DATE object given a Java OffsetTime object
      Parameters:
      ot - Java OffsetDateTime object
      Throws:
      SQLException
    • DATE

      public DATE(ZonedDateTime zdt) throws SQLException
      Create a DATE object given a Java ZonedDateTime object
      Parameters:
      zdt - Java ZonedDateTime object
      Throws:
      SQLException
  • Method Details

    • toDate

      public static Date toDate(byte[] date)
      Convert Oracle DATE to Java Date.
      Parameters:
      date - Oracle DATE to be converted
      Returns:
      the java.sql.Date object represented by the Oracle DATE date.
    • toTime

      public static Time toTime(byte[] date)
      Convert Oracle DATE to Java Time.
      Parameters:
      date - Oracle DATE to be converted
      Returns:
      the java.sql.Time object represented by the Oracle DATE date.
    • toTimestamp

      public static Timestamp toTimestamp(byte[] date)
      Convert Oracle DATE to Java Timestamp.
      Parameters:
      date - Oracle DATE to be converted
      Returns:
      the java.sql.Timestamp object represented by the Oracle DATE date.
    • toDate

      public static Date toDate(byte[] date, Calendar cal)
      Convert Oracle DATE and Calendar to Java Date.
      Parameters:
      date - Oracle DATE to be converted
      cal - Calendar which encapsulates the timezone information to be used to create Date object
      Returns:
      the java.sql.Date object represented by the Oracle DATE date.
    • toTime

      public static Time toTime(byte[] date, Calendar cal)
      Convert Oracle DATE and Calendar to Java Time.
      Parameters:
      date - Oracle DATE to be converted
      cal - Calendar which encapsulates the timezone information to be used to create the Time object
      Returns:
      the java.sql.Time object represented by the Oracle DATE date.
    • toTimestamp

      public static Timestamp toTimestamp(byte[] date, Calendar cal)
      Convert Oracle DATE and Calendar to Java Timestamp.
      Parameters:
      date - Oracle DATE to be converted
      cal - Calendar which encapsulates the timezone information to be used to create the Timestamp object
      Returns:
      the java.sql.Timestamp object represented by the Oracle DATE date.
    • toString

      public static String toString(byte[] bytes)
      Converts a DATE to a string
      Parameters:
      date - a byte array
      Returns:
      String representing the date
    • toBytes

      public byte[] toBytes()
      Specified by:
      toBytes in interface oracle.jdbc.internal.OracleDate
    • toBytes

      public static byte[] toBytes(Date date)
      Convert Java Date to Oracle DATE.
      Parameters:
      date - java.sql.Date object to be converted.
      Returns:
      the byte array representing the input date.
    • toBytes

      public static byte[] toBytes(Time time)
      Convert Java Time to Oracle DATE.
      Parameters:
      time - java.sql.Time object to be converted.
      Returns:
      the byte array representing the input time.
    • toBytes

      public static byte[] toBytes(Timestamp timestamp)
      Convert Java Timestamp to Oracle DATE.
      Parameters:
      timestamp - java.sql.Timestamp object to be converted.
      Returns:
      the byte array representing the input timestamp.
    • toBytes

      public static byte[] toBytes(Date date, Calendar cal)
      Convert Java Date and Calendar to Oracle DATE.
      Parameters:
      date - java.sql.Date object to be converted.
      cal - java.util.Calendar object which encapsulates the timezone information of date
      Returns:
      the byte array representing the input date.
    • toBytes

      public static byte[] toBytes(Time time, Calendar cal)
      Convert Java Time and Calendar to Oracle DATE.
      Parameters:
      time - java.sql.Time object to be converted.
      cal - java.util.Calendar object which encapsulates the timezone information of time
      Returns:
      the byte array representing the input time.
    • toBytes

      public static byte[] toBytes(Timestamp timestamp, Calendar cal)
      Convert Java Timestamp and Calendar to Oracle DATE.
      Parameters:
      timestamp - java.sql.Timestamp object to be converted.
      cal - java.util.Calendar object which encapsulates the timezone information of date
      Returns:
      the byte array representing the input timestamp.
    • toBytes

      public static byte[] toBytes(String str)
      Convert Java String to Oracle DATE.
      Parameters:
      str - java.lang.String object to be converted.
      Returns:
      the byte array representing the input string.
    • toBytes

      public static byte[] toBytes(String str, Calendar cal)
      Convert Java String to Oracle DATE.
      Parameters:
      str - java.lang.String object to be converted.
      cal - java.util.Calendar object which encapsulates the timezone information for interpreting str
      Returns:
      the byte array representing the input string.
    • dateValue

      public Date dateValue()
      Calls toDate to convert internal Oracle DATE to a Java Date.
      Overrides:
      dateValue in class Datum
      Returns:
      a Java Date value
    • timeValue

      public Time timeValue()
      Calls toTime to convert internal Oracle DATE to a Java Time.
      Overrides:
      timeValue in class Datum
      Returns:
      a Java Time value
    • timestampValue

      public Timestamp timestampValue()
      Calls toTimestamp to convert internal Oracle DATE to a Java Timestamp.
      Overrides:
      timestampValue in class Datum
      Returns:
      a Java Timestamp value
    • dateValue

      public Date dateValue(Calendar cal)
      Calls toDate to convert internal Oracle DATE and Calendar to a Java Date.
      Parameters:
      cal - Calendar to use
      Returns:
      a Java Date value
    • timeValue

      public Time timeValue(Calendar cal)
      Calls toTime to convert internal Oracle DATE and Calendar to a Java Time.
      Overrides:
      timeValue in class Datum
      Parameters:
      cal - Calendar to use
      Returns:
      a Java Time value
    • timestampValue

      public Timestamp timestampValue(Calendar cal)
      Calls toTimestamp to convert internal Oracle DATE and Calendar to a Java Timestamp.
      Overrides:
      timestampValue in class Datum
      Parameters:
      cal - Calendar to use
      Returns:
      a Java Timestamp value
    • stringValue

      public String stringValue()
      Calls toString to convert internal Oracle DATE to a Java String.
      Overrides:
      stringValue in class Datum
      Returns:
      a Java String value
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toJdbc

      public Object toJdbc()
      Returns the JDBC representation of the datum object
      Specified by:
      toJdbc in class Datum
      Returns:
      an object containing the JDBC value
    • makeJdbcArray

      public Object makeJdbcArray(int arraySize)
      Returns a JDBC array representation of the datum
      Specified by:
      makeJdbcArray in class Datum
      Parameters:
      arraySize - size of the array
      Returns:
      an object containing the JDBC array value
    • isConvertibleTo

      public boolean isConvertibleTo(Class<?> cls)
      Determines if the object can be converted to a particular class
      Specified by:
      isConvertibleTo in class Datum
      Parameters:
      cls - Class to convert to
      Returns:
      true, if conversion to cls is permitted false, if conversion to cls is not permitted
    • addJulianDays

      public DATE addJulianDays(int julianDay, int julianSec) throws SQLException
      Add Julian days to a date.
      Parameters:
      julianDay - Number of Julian days to add to DATE
      julianSec - Number of seconds past midnight
      Returns:
      new DATE object initalized to the DATE values added to the Julian days.
      Throws:
      SQLException - if Java implementation is not available
    • addMonths

      public DATE addMonths(int months) throws SQLException
      Add months to a date.
      Parameters:
      months - integral months to add to date
      Returns:
      new DATE object initialized to the DATE value added to months. months can be negative to perform month subtraction.
      Throws:
      SQLException - if Java implementation is not available
    • zeroTime

      public DATE zeroTime() throws SQLException
      Zero out the time from a DATE object.
      Throws:
      SQLException
    • diffInJulianDays

      public void diffInJulianDays(DATE date, int[] julianDay, int[] julianSec) throws SQLException
      Calculates the difference between two dates in Julian days.
      Parameters:
      date - Date to be subtracted.
      julianDay - Number of Julian days
      julianSec - Number of seconds past midnight
      Throws:
      SQLException - if Java implementation is not available
    • diffInMonths

      public NUMBER diffInMonths(DATE date) throws SQLException
      Calculates the difference between two dates in months.
      Parameters:
      date - Date to be subtracted.
      Returns:
      NUMBER difference in months as an Oracle Number.
      Throws:
      SQLException - if Java implementation is not available
    • getCurrentDate

      public static DATE getCurrentDate() throws SQLException
      Gets current date and time
      Returns:
      DATE object
      Throws:
      SQLException - if Java implementation is not available
    • checkValidity

      public static int checkValidity(byte[] date) throws SQLException
      Checks the DATE passed in.
      Parameters:
      date - Date to be checked
      Returns:
      0 if the date is valid or the ORed representations in the following table:
      BDA Bad day: above range
      BDAL Bad day: below range
      BMO Bad month: above range
      BMOL Bad month: below range
      BYR Bad year: above range
      BYRL Bad year: below range
      BHR Bad hour: above range
      BHRL Bad hour: below range
      BMN Bad minute: above range
      BMNL Bad minute: below range
      BSC Bad second: above range
      BSCL Bad second: below range
      MSD Day is one of those "missing" from the year 1582
      YR0 Year zero does not exist
      BDT Bad date format
      HRZERO Zero valued hour
      MIZERO Zero valued minute
      SEZERO Zero valued second
      Throws:
      SQLException - if Java implementation is not available
    • fromJulianDays

      public static DATE fromJulianDays(int julianDay, int julianSec) throws SQLException
      Convert given julian days and seconds to an Oracle Date.
      Parameters:
      julianDay - Number of Julian days
      julianSec - Number of seconds past midnight
      Returns:
      new DATE object initialized based on the number of Julian days.
      Throws:
      SQLException - if Java implementation is not available
    • fromText

      public static DATE fromText(String datestr, String fmt, String lang) throws SQLException
      Convert a string to a DATE object.
      Parameters:
      datestr - Input Date string
      fmt - Date Format
      lang - Input date language
      Returns:
      DATE object Note: Some of the extended Date Formats supported by the C Date libraries from CORE are not supported in this pure Java equivalent implementation. The Format strings supported are:
      String Meaning
      a.d. B.C./A.D. indicator
      a.m. A.M./P.M. indicator
      ad BC/AD indicator
      am AM/PM indicator
      b.c. B.C./A.D. indicator
      bc BC/AD indicator
      d day of the week
      day name of the day, spelled out
      dd day of the month
      ddd day of year
      dy name of weekday abbreviated
      hh hour representation in 12 hour format
      hh24 hour representation in 24 hour format
      mi minutes
      mm two digit month representation
      mon month abbreviation
      month name of the month, spelled out
      p.m. A.M./P.M. indicator
      pm AM/PM indicator
      ss two digit second representation
      Y last digit of the year
      YY last two digits of a year
      YYY last three digits of a year
      YYYY year
      "" all text in quotes is copied into the output string It is not possible to place a quote character into the output string. On input, literal text is a placeholder for another string of the same length
      /,%&@#.. punctuation (non-alphanumeric characters) is treated exactly like a literal without the need for quotes.

      The Date format string not supported versus the C library are:

      String Meaning
      E abbreviated era name
      EE full era name
      FX all date literals must be an exact match
      j Julian day
      RM Roman numeral month (I-XII)
      RR Round year with two digits (on input, rounds the century up one if the year is <50 and the reference date is >= 50, and down one century if the year is >= 50 and the reference date is <50)
      RRRR Round year (on input, accepts either four digit input or, for two digit input, rounds the century up one if the year is <50 and the reference date is >= 50, and down one century if the year is >= 50 and the reference date is <50)
      sssss number of seconds past midnight
      sy,yyy signed year (BC dates have "-" in front)
      syYYY signed year (BC dates have "-" in front)
      Y,YYY year with comma
      YEAR year number spelled out

      Also parsing is strict i.e. spaces and literals should match the format string exactly. (except for a.d./b.c. the string should be ad/bc)

      Throws:
      SQLException
    • lastDayOfMonth

      public DATE lastDayOfMonth() throws SQLException
      returns a DATE object intialized to the last day of the month .
      Returns:
      a DATE object
      Throws:
      SQLException - if Java implementation is not available
    • numberToJulianDays

      public static void numberToJulianDays(NUMBER num, int[] julianDay, int[] julianSec) throws SQLException
      Converts an Oracle NUMBER to Julian days and seconds
      Parameters:
      num - Oracle Number to convert
      julianDay - Number of Julian days
      julianSec - Number of seconds past midnight
      Throws:
      SQLException - if Java implementation is not available
    • round

      public DATE round(String prec) throws SQLException
      returns a DATE object with date rounded to specified precision
      Parameters:
      prec - precision to use while rounding
      Returns:
      DATE object
      Throws:
      SQLException - if Java implementation is not available
    • setDayOfWeek

      public DATE setDayOfWeek(int day) throws SQLException
      returns a DATE object initialized to date advanced to the week of the day specified.
      Parameters:
      day - day of the week the date needs to be advanced
      Returns:
      DATE object.
      Throws:
      SQLException - if Java implementation is not available
    • toJulianDays

      public void toJulianDays(int[] julianDay, int[] julianSec) throws SQLException
      Convert to Julian days and seconds from the given date.
      Parameters:
      julianDay - Number of Julian days
      julianSec - Number of seconds past midnight
      Throws:
      SQLException - if Java implementation is not available
    • toNumber

      public NUMBER toNumber() throws SQLException
      Converts date to an Oracle Number.
      Returns:
      an Oracle Number
      Throws:
      SQLException - if Java implementation is not available
    • toText

      public String toText(String fmt, String lang) throws SQLException
      Convert date to text as specified by fmt.
      Parameters:
      fmt - date format
      lang - the NLS language the conversion is to be performed in, null indicates use default.
      Returns:
      a String converted from date via format fmt.
      Throws:
      SQLException - if Java implementation is not available or an invalid format string is provided.
    • toText

      public String toText(byte[] pfmt, String lang) throws SQLException
      Convert date to text as specified by fmt.
      Parameters:
      pfmt - date format parsed by parseFormat
      lang - the NLS language the conversion is to be performed in, null indicates use default.
      Returns:
      a String converted from date via format fmt.
      Throws:
      SQLException - if Java implementation is not available or an invalid format string is provided.
    • parseFormat

      public static byte[] parseFormat(String fmt, String lang) throws SQLException
      Converts the fmt string into tokens for use by toText().
      Parameters:
      fmt - date format
      lang - A String containing NLS Language and/or Territory null indicates to use default.
      Returns:
      a byte array containing tokens from the parsed format
      Throws:
      SQLException - if the format string can not be parsed.
    • truncate

      public DATE truncate(String prec) throws SQLException
      returns a DATE object with date truncated to specified precision
      Parameters:
      prec - precision to use while truncating
      Returns:
      DATE object
      Throws:
      SQLException - if Java implementation is not available
    • compareTo

      public int compareTo(DATE date)
      Returns -1 if DATE is less than date, 0 if DATE and date are equal (==), 1 if DATE is greater than date.
      Parameters:
      date - input Oracle Date
      Returns:
      integer result of comparison
    • of

      public static DATE of(LocalDate ld) throws SQLException
      Creates DATE from the LocalDate.
      Parameters:
      ld - LocalDate object
      Returns:
      DATE object
      Throws:
      SQLException
    • toLocalDate

      public LocalDate toLocalDate() throws SQLException
      Converts DATE to LocalDate.
      Returns:
      LocalDate object.
      Throws:
      SQLException
    • localDateValue

      public LocalDate localDateValue() throws SQLException
      Converts DATE to LocalDate.
      Returns:
      LocalDate object.
      Throws:
      SQLException
    • of

      public static DATE of(LocalDateTime ldt) throws SQLException
      Creates DATE from the LocalDateTime.
      Parameters:
      ldt - LocalDateTime object
      Returns:
      DATE object
      Throws:
      SQLException
    • toLocalDateTime

      public LocalDateTime toLocalDateTime() throws SQLException
      Converts DATE to LocalDateTime.
      Returns:
      LocalDateTime object.
      Throws:
      SQLException
    • localDateTimeValue

      public LocalDateTime localDateTimeValue() throws SQLException
      Converts DATE to LocalDateTime.
      Returns:
      LocalDateTime object.
      Throws:
      SQLException
    • of

      public static DATE of(LocalTime lt) throws SQLException
      Creates DATE from the LocalTime.
      Parameters:
      lt - LocalTime object
      Returns:
      DATE object
      Throws:
      SQLException
    • toLocalTime

      public LocalTime toLocalTime() throws SQLException
      Converts DATE to LocalTime.
      Returns:
      LocalTime object.
      Throws:
      SQLException
    • localTimeValue

      public LocalTime localTimeValue() throws SQLException
      Converts DATE to LocalTime.
      Returns:
      LocalTime object.
      Throws:
      SQLException
    • of

      public static DATE of(OffsetDateTime odt) throws SQLException
      Creates DATE from the OffsetDateTime.
      Parameters:
      odt - OffsetDateTime object
      Returns:
      DATE object
      Throws:
      SQLException
    • of

      public static DATE of(OffsetTime ot) throws SQLException
      Creates DATE from the OffsetTime.
      Parameters:
      ot - OffsetTime object
      Returns:
      DATE object
      Throws:
      SQLException
    • of

      public static DATE of(ZonedDateTime zdt) throws SQLException
      Creates DATE from the ZonedDateTime.
      Parameters:
      zdt - ZonedDateTime object
      Returns:
      DATE object
      Throws:
      SQLException
    • toLocalDate

      public static LocalDate toLocalDate(byte[] date) throws SQLException
      Convert a byte array representing a DATE object to a Java LocalDate
      Parameters:
      date - Oracle DATE object to be converted
      Returns:
      the java.time.LocalDate object represented by the Oracle DATE object.
      Throws:
      SQLException
    • toLocalTime

      public static LocalTime toLocalTime(byte[] date) throws SQLException
      Convert a byte array representing a DATE object to a Java LocalTime
      Parameters:
      date - Oracle DATE object to be converted
      Returns:
      the java.time.LocalTime object represented by the Oracle DATE object.
      Throws:
      SQLException
    • toLocalDateTime

      public static LocalDateTime toLocalDateTime(byte[] date) throws SQLException
      Convert a byte array representing a DATE object to a Java LocalDateTime
      Parameters:
      date - Oracle DATE object to be converted
      Returns:
      the java.time.LocalDateTime object represented by the Oracle DATE object.
      Throws:
      SQLException
    • toBytes

      public static byte[] toBytes(LocalDate ld)
      Convert Java LocalDate to Oracle DATE
      Parameters:
      ld - LocalDate object
      Returns:
      the byte array representing the java LocalDate.
    • toBytes

      public static byte[] toBytes(LocalDateTime ldt)
      Convert Java LocalDateTime to Oracle DATE
      Parameters:
      ldt - LocalDateTime object
      Returns:
      the byte array representing the java LocalDateTime.
    • toBytes

      public static byte[] toBytes(LocalTime lt)
      Convert Java LocalTime to Oracle DATE
      Parameters:
      lt - LocalTime object
      Returns:
      the byte array representing the java LocalTime.
    • toBytes

      public static byte[] toBytes(OffsetDateTime odt)
      Convert Java OffsetDateTime to Oracle DATE
      Parameters:
      odt - OffsetDateTime object
      Returns:
      the byte array representing the java OffsetDateTime.
    • toBytes

      public static byte[] toBytes(OffsetTime ot)
      Convert Java OffsetTime to Oracle DATE
      Parameters:
      ot - OffsetTime object
      Returns:
      the byte array representing the java OffsetTime.
    • toBytes

      public static byte[] toBytes(ZonedDateTime zdt)
      Convert Java ZonedDateTime to Oracle DATE
      Parameters:
      zdt - ZonedDateTime object
      Returns:
      the byte array representing the java ZonedDateTime.