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:
    Serialized Form
    • Constructor Detail

      • 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
    • Method Detail

      • 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
      • 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
      • 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​(java.time.LocalDate ld)
                       throws SQLException
        Creates DATE from the LocalDate.
        Parameters:
        ld - LocalDate object
        Returns:
        DATE object
        Throws:
        SQLException
      • toLocalDate

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

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

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

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

        public java.time.LocalTime toLocalTime()
                                        throws SQLException
        Converts DATE to LocalTime.
        Returns:
        LocalTime object.
        Throws:
        SQLException