# Class Time

java.lang.Object
java.util.Date
java.sql.Time

All Implemented Interfaces:
  `Serializable, Cloneable, Comparable<Date>`

public class Time extends Date

A thin wrapper around the `java.util.Date` class that allows the JDBC API to identify this as an SQL `TIME` value. The `Time` class adds formatting and parsing operations to support the JDBC escape syntax for time values.

The date components should be set to the "zero epoch" value of January 1, 1970 and should not be accessed.

Since:
  1.1
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Time(int hour, int minute, int second)`
  Deprecated.
  Use the constructor that takes a milliseconds value in place of this constructor
  `Time(long time)`
  Constructs a `Time` object using a milliseconds time value.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getDate()`
  Deprecated.
  `int`
  `getDay()`
  Deprecated.
  `int`
  `getMonth()`
  Deprecated.
  `int`
  `getYear()`
  Deprecated.
  `void`
  `setDate(int i)`
  Deprecated.
  `void`
  `setMonth(int i)`
  Deprecated.
  `void`
  `setTime(long time)`
  Sets a `Time` object using a milliseconds time value.
  `void`
  `setYear(int i)`
  Deprecated.
  `Instant`
  `toInstant()`
  This method always throws an UnsupportedOperationException and should not be used because SQL `Time` values do not have a date component.
  `LocalTime`
  `toLocalTime()`
  Converts this `Time` object to a `LocalTime`.
  `String`
  `toString()`
  Formats a time in JDBC time escape format.
  `static Time`
  `valueOf(String s)`
  Converts a string in JDBC time escape format to a `Time` value.
  `static Time`
  `valueOf(LocalTime time)`
  Obtains an instance of `Time` from a `LocalTime` object with the same hour, minute and second time value as the given `LocalTime`.

  ### Methods declared in class Date

  `after, before, clone, compareTo, equals, from, getHours, getMinutes, getSeconds, getTime, getTimezoneOffset, hashCode, parse, setHours, setMinutes, setSeconds, toGMTString, toLocaleString, UTC`
  Modifier and Type
  Method
  Description
  `boolean`
  `after(Date when)`
  Tests if this date is after the specified date.
  `boolean`
  `before(Date when)`
  Tests if this date is before the specified date.
  `Object`
  `clone()`
  Return a copy of this object.
  `int`
  `compareTo(Date anotherDate)`
  Compares two Dates for ordering.
  `boolean`
  `equals(Object obj)`
  Compares two dates for equality.
  `static Date`
  `from(Instant instant)`
  Obtains an instance of `Date` from an `Instant` object.
  `int`
  `getHours()`
  Deprecated.
  As of JDK version 1.1, replaced by `Calendar.get(Calendar.HOUR_OF_DAY)`.
  `int`
  `getMinutes()`
  Deprecated.
  As of JDK version 1.1, replaced by `Calendar.get(Calendar.MINUTE)`.
  `int`
  `getSeconds()`
  Deprecated.
  As of JDK version 1.1, replaced by `Calendar.get(Calendar.SECOND)`.
  `long`
  `getTime()`
  Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this `Date` object.
  `int`
  `getTimezoneOffset()`
  Deprecated.
  As of JDK version 1.1, replaced by `-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `static long`
  `parse(String s)`
  Deprecated.
  As of JDK version 1.1, replaced by `DateFormat.parse(String s)`.
  `void`
  `setHours(int hours)`
  Deprecated.
  As of JDK version 1.1, replaced by `Calendar.set(Calendar.HOUR_OF_DAY, int hours)`.
  `void`
  `setMinutes(int minutes)`
  Deprecated.
  As of JDK version 1.1, replaced by `Calendar.set(Calendar.MINUTE, int minutes)`.
  `void`
  `setSeconds(int seconds)`
  Deprecated.
  As of JDK version 1.1, replaced by `Calendar.set(Calendar.SECOND, int seconds)`.
  `String`
  `toGMTString()`
  Deprecated.
  As of JDK version 1.1, replaced by `DateFormat.format(Date date)`, using a GMT `TimeZone`.
  `String`
  `toLocaleString()`
  Deprecated.
  As of JDK version 1.1, replaced by `DateFormat.format(Date date)`.
  `static long`
  `UTC(int year, int month, int date, int hrs, int min, int sec)`
  Deprecated.
  As of JDK version 1.1, replaced by `Calendar.set(year + 1900, month, date, hrs, min, sec)` or `GregorianCalendar(year + 1900, month, date, hrs, min, sec)`, using a UTC `TimeZone`, followed by `Calendar.getTime().getTime()`.

  ### Methods declared in class Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### Time

    @Deprecated(since="1.2") public Time(int hour, int minute, int second)
    Deprecated.
    Use the constructor that takes a milliseconds value in place of this constructor
    Constructs a `Time` object initialized with the given values for the hour, minute, and second. The driver sets the date components to January 1, 1970. Any method that attempts to access the date components of a `Time` object will throw a `java.lang.IllegalArgumentException`.

    The result is undefined if a given argument is out of bounds.

    Parameters:
      `hour` - 0 to 23
      `minute` - 0 to 59
      `second` - 0 to 59

  - ### Time

    public Time(long time)
    Constructs a `Time` object using a milliseconds time value.
    Parameters:
      `time` - milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT

- ## Method Details

  - ### setTime

    public void setTime(long time)
    Sets a `Time` object using a milliseconds time value.
    Overrides:
      `setTime` in class `Date`
    Parameters:
      `time` - milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds before January 1, 1970, 00:00:00 GMT

  - ### valueOf

    public static Time valueOf(String s)
    Converts a string in JDBC time escape format to a `Time` value.
    Parameters:
      `s` - time in format "hh:mm:ss"
    Returns:
      a corresponding `Time` object

  - ### toString

    public String toString()
    Formats a time in JDBC time escape format.
    Overrides:
      `toString` in class `Date`
    Returns:
      a `String` in hh:mm:ss format
    See Also:
      - `Date.toLocaleString()`
      - `Date.toGMTString()`

  - ### getYear

    @Deprecated(since="1.2") public int getYear()
    Deprecated.
    This method is deprecated and should not be used because SQL `TIME` values do not have a year component.
    Overrides:
      `getYear` in class `Date`
    Returns:
      the year represented by this date, minus 1900.
    Throws:
      `IllegalArgumentException` - if this method is invoked
    See Also:
      - `setYear(int)`

  - ### getMonth

    @Deprecated(since="1.2") public int getMonth()
    Deprecated.
    This method is deprecated and should not be used because SQL `TIME` values do not have a month component.
    Overrides:
      `getMonth` in class `Date`
    Returns:
      the month represented by this date.
    Throws:
      `IllegalArgumentException` - if this method is invoked
    See Also:
      - `setMonth(int)`

  - ### getDay

    @Deprecated(since="1.2") public int getDay()
    Deprecated.
    This method is deprecated and should not be used because SQL `TIME` values do not have a day component.
    Overrides:
      `getDay` in class `Date`
    Returns:
      the day of the week represented by this date.
    Throws:
      `IllegalArgumentException` - if this method is invoked
    See Also:
      - `Calendar`

  - ### getDate

    @Deprecated(since="1.2") public int getDate()
    Deprecated.
    This method is deprecated and should not be used because SQL `TIME` values do not have a date component.
    Overrides:
      `getDate` in class `Date`
    Returns:
      the day of the month represented by this date.
    Throws:
      `IllegalArgumentException` - if this method is invoked
    See Also:
      - `setDate(int)`

  - ### setYear

    @Deprecated(since="1.2") public void setYear(int i)
    Deprecated.
    This method is deprecated and should not be used because SQL `TIME` values do not have a year component.
    Overrides:
      `setYear` in class `Date`
    Parameters:
      `i` - the year value.
    Throws:
      `IllegalArgumentException` - if this method is invoked
    See Also:
      - `getYear()`

  - ### setMonth

    @Deprecated(since="1.2") public void setMonth(int i)
    Deprecated.
    This method is deprecated and should not be used because SQL `TIME` values do not have a month component.
    Overrides:
      `setMonth` in class `Date`
    Parameters:
      `i` - the month value between 0-11.
    Throws:
      `IllegalArgumentException` - if this method is invoked
    See Also:
      - `getMonth()`

  - ### setDate

    @Deprecated(since="1.2") public void setDate(int i)
    Deprecated.
    This method is deprecated and should not be used because SQL `TIME` values do not have a date component.
    Overrides:
      `setDate` in class `Date`
    Parameters:
      `i` - the day of the month value between 1-31.
    Throws:
      `IllegalArgumentException` - if this method is invoked
    See Also:
      - `getDate()`

  - ### valueOf

    public static Time valueOf(LocalTime time)
    Obtains an instance of `Time` from a `LocalTime` object with the same hour, minute and second time value as the given `LocalTime`. The nanosecond field from `LocalTime` is not part of the newly created `Time` object.
    Parameters:
      `time` - a `LocalTime` to convert
    Returns:
      a `Time` object
    Throws:
      `NullPointerException` - if `time` is null
    Since:
      1.8

  - ### toLocalTime

    public LocalTime toLocalTime()
    Converts this `Time` object to a `LocalTime`.

    The conversion creates a `LocalTime` that represents the same hour, minute, and second time value as this `Time`. The nanosecond `LocalTime` field will be set to zero.

    Returns:
      a `LocalTime` object representing the same time value
    Since:
      1.8

  - ### toInstant

    public Instant toInstant()
    This method always throws an UnsupportedOperationException and should not be used because SQL `Time` values do not have a date component.
    Overrides:
      `toInstant` in class `Date`
    Returns:
      an instant representing the same point on the time-line as this `Date` object
    Throws:
      `UnsupportedOperationException` - if this method is invoked