Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/java/sql/Timestamp#pubctors) \| [Methods](https://developer.android.com/reference/java/sql/Timestamp#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/sql/Timestamp#inhmethods)

# Timestamp

` public class Timestamp `   
` ` ` extends https://developer.android.com/reference/java/util/Date ` ` `

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [java.util.Date](https://developer.android.com/reference/java/util/Date) ||
|   | ↳ | java.sql.Timestamp |

<br />

*** ** * ** ***

<br />

A thin wrapper around `java.util.Date` that allows the JDBC API to identify this as an SQL `TIMESTAMP` value. It adds the ability to hold the SQL `TIMESTAMP` fractional seconds value, by allowing the specification of fractional seconds to a precision of nanoseconds. A Timestamp also provides formatting and parsing operations to support the JDBC escape syntax for timestamp values.

The precision of a Timestamp object is calculated to be either:

- `19 `, which is the number of characters in yyyy-mm-dd hh:mm:ss
- ` 20 + s `, which is the number of characters in the yyyy-mm-dd hh:mm:ss.\[fff...\] and `s` represents the scale of the given Timestamp, its fractional seconds precision.

**Note:** This type is a composite of a `java.util.Date` and a separate nanoseconds value. Only integral seconds are stored in the `java.util.Date` component. The fractional seconds - the nanos - are separate. The `Timestamp.equals(Object)` method never returns `true` when passed an object that isn't an instance of `java.sql.Timestamp`, because the nanos component of a date is unknown. As a result, the `Timestamp.equals(Object)` method is not symmetric with respect to the `java.util.Date.equals(Object)` method. Also, the `hashCode` method uses the underlying `java.util.Date` implementation and therefore does not include nanos in its computation.

Due to the differences between the `Timestamp` class and the `java.util.Date` class mentioned above, it is recommended that code not view `Timestamp` values generically as an instance of `java.util.Date`. The inheritance relationship between `Timestamp` and `java.util.Date` really denotes implementation inheritance, and not type inheritance.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/sql/Timestamp#Timestamp(int,%20int,%20int,%20int,%20int,%20int,%20int)(int year, int month, int date, int hour, int minute, int second, int nano) ` *This constructor is deprecated. instead use the constructor `Timestamp(long millis)`* |
| ` https://developer.android.com/reference/java/sql/Timestamp#Timestamp(long)(long time) ` Constructs a `Timestamp` object using a milliseconds time value. |

| ### Public methods ||
|---|---|
| ` boolean` | ` https://developer.android.com/reference/java/sql/Timestamp#after(java.sql.Timestamp)(https://developer.android.com/reference/java/sql/Timestamp ts) ` Indicates whether this `Timestamp` object is later than the given `Timestamp` object. |
| ` boolean` | ` https://developer.android.com/reference/java/sql/Timestamp#before(java.sql.Timestamp)(https://developer.android.com/reference/java/sql/Timestamp ts) ` Indicates whether this `Timestamp` object is earlier than the given `Timestamp` object. |
| ` int` | ` https://developer.android.com/reference/java/sql/Timestamp#compareTo(java.util.Date)(https://developer.android.com/reference/java/util/Date o) ` Compares this `Timestamp` object to the given `Date` object. |
| ` int` | ` https://developer.android.com/reference/java/sql/Timestamp#compareTo(java.sql.Timestamp)(https://developer.android.com/reference/java/sql/Timestamp ts) ` Compares this `Timestamp` object to the given `Timestamp` object. |
| ` boolean` | ` https://developer.android.com/reference/java/sql/Timestamp#equals(java.sql.Timestamp)(https://developer.android.com/reference/java/sql/Timestamp ts) ` Tests to see if this `Timestamp` object is equal to the given `Timestamp` object. |
| ` boolean` | ` https://developer.android.com/reference/java/sql/Timestamp#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object ts) ` Tests to see if this `Timestamp` object is equal to the given object. |
| ` int` | ` https://developer.android.com/reference/java/sql/Timestamp#getNanos()() ` Gets this `Timestamp` object's `nanos` value. |
| ` long` | ` https://developer.android.com/reference/java/sql/Timestamp#getTime()() ` Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this `Timestamp` object. |
| ` int` | ` https://developer.android.com/reference/java/sql/Timestamp#hashCode()() ` Returns a hash code value for this object. The `hashCode` method uses the underlying `java.util.Date` implementation and therefore does not include nanos in its computation. |
| ` void` | ` https://developer.android.com/reference/java/sql/Timestamp#setNanos(int)(int n) ` Sets this `Timestamp` object's `nanos` field to the given value. |
| ` void` | ` https://developer.android.com/reference/java/sql/Timestamp#setTime(long)(long time) ` Sets this `Timestamp` object to represent a point in time that is time milliseconds after January 1, 1970 00:00:00 GMT. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/sql/Timestamp#toString()() ` Formats a timestamp in JDBC timestamp escape format. |
| ` static https://developer.android.com/reference/java/sql/Timestamp` | ` https://developer.android.com/reference/java/sql/Timestamp#valueOf(java.lang.String)(https://developer.android.com/reference/java/lang/String s) ` Converts a `String` object in JDBC timestamp escape format to a `Timestamp` value. |

### Inherited methods

From class ` https://developer.android.com/reference/java/util/Date ` ` static long` ` https://developer.android.com/reference/java/util/Date#UTC(int,%20int,%20int,%20int,%20int,%20int)(int year, int month, int date, int hrs, int min, int sec) `

*This method was deprecated in API level 15. 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()`.*
` boolean` ` https://developer.android.com/reference/java/util/Date#after(java.util.Date)(https://developer.android.com/reference/java/util/Date when) `

Tests if this date is after the specified date.
` boolean` ` https://developer.android.com/reference/java/util/Date#before(java.util.Date)(https://developer.android.com/reference/java/util/Date when) `

Tests if this date is before the specified date.
` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/util/Date#clone()() `

Return a copy of this object.
` int` ` https://developer.android.com/reference/java/util/Date#compareTo(java.util.Date)(https://developer.android.com/reference/java/util/Date anotherDate) `

Compares two Dates for ordering.
` boolean` ` https://developer.android.com/reference/java/util/Date#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Compares two dates for equality.
` static https://developer.android.com/reference/java/util/Date` ` https://developer.android.com/reference/java/util/Date#from(java.time.Instant)(https://developer.android.com/reference/java/time/Instant instant) `

Obtains an instance of `Date` from an `Instant` object.
` int` ` https://developer.android.com/reference/java/util/Date#getDate()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.get(Calendar.DAY_OF_MONTH)`.*
` int` ` https://developer.android.com/reference/java/util/Date#getDay()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.get(Calendar.DAY_OF_WEEK)`.*
` int` ` https://developer.android.com/reference/java/util/Date#getHours()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.get(Calendar.HOUR_OF_DAY)`.*
` int` ` https://developer.android.com/reference/java/util/Date#getMinutes()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.get(Calendar.MINUTE)`.*
` int` ` https://developer.android.com/reference/java/util/Date#getMonth()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.get(Calendar.MONTH)`.*
` int` ` https://developer.android.com/reference/java/util/Date#getSeconds()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.get(Calendar.SECOND)`.*
` long` ` https://developer.android.com/reference/java/util/Date#getTime()() `

Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this `Date` object.
` int` ` https://developer.android.com/reference/java/util/Date#getTimezoneOffset()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)`.*
` int` ` https://developer.android.com/reference/java/util/Date#getYear()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.get(Calendar.YEAR) - 1900`.*
` int` ` https://developer.android.com/reference/java/util/Date#hashCode()() `

Returns a hash code value for this object.
` static long` ` https://developer.android.com/reference/java/util/Date#parse(java.lang.String)(https://developer.android.com/reference/java/lang/String s) `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `DateFormat.parse(String s)`.*
` void` ` https://developer.android.com/reference/java/util/Date#setDate(int)(int date) `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.set(Calendar.DAY_OF_MONTH, int date)`.*
` void` ` https://developer.android.com/reference/java/util/Date#setHours(int)(int hours) `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.set(Calendar.HOUR_OF_DAY, int hours)`.*
` void` ` https://developer.android.com/reference/java/util/Date#setMinutes(int)(int minutes) `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.set(Calendar.MINUTE, int minutes)`.*
` void` ` https://developer.android.com/reference/java/util/Date#setMonth(int)(int month) `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.set(Calendar.MONTH, int month)`.*
` void` ` https://developer.android.com/reference/java/util/Date#setSeconds(int)(int seconds) `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.set(Calendar.SECOND, int seconds)`.*
` void` ` https://developer.android.com/reference/java/util/Date#setTime(long)(long time) `

Sets this `Date` object to represent a point in time that is `time` milliseconds after January 1, 1970 00:00:00 GMT.
` void` ` https://developer.android.com/reference/java/util/Date#setYear(int)(int year) `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `Calendar.set(Calendar.YEAR, year + 1900)`.*
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/util/Date#toGMTString()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `DateFormat.format(Date date)`, using a GMT `TimeZone`.*
` https://developer.android.com/reference/java/time/Instant` ` https://developer.android.com/reference/java/util/Date#toInstant()() `

Converts this `Date` object to an `Instant`.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/util/Date#toLocaleString()() `

*This method was deprecated in API level 15. As of JDK version 1.1, replaced by `DateFormat.format(Date date)`.*
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/util/Date#toString()() `

Converts this `Date` object to a `String` of the form:
>
> ```
> dow mon dd hh:mm:ss zzz yyyy
> ```
where:

- `dow` is the day of the week (`Sun, Mon, Tue, Wed, Thu, Fri, Sat`).

  <br />

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(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.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(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` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/java/lang/Comparable ` ` abstract int` ` https://developer.android.com/reference/java/lang/Comparable#compareTo(T)(https://developer.android.com/reference/java/util/Date o) `

Compares this object with the specified object for order.

## Public constructors

### Timestamp

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Timestamp (int year, 
                int month, 
                int date, 
                int hour, 
                int minute, 
                int second, 
                int nano)
```

<br />

**This constructor is deprecated.**   

instead use the constructor `Timestamp(long millis)`

Constructs a `Timestamp` object initialized with the given values.

<br />

| Parameters ||
|---|---|
| `year` | `int`: the year minus 1900 <br /> |
| `month` | `int`: 0 to 11 <br /> |
| `date` | `int`: 1 to 31 <br /> |
| `hour` | `int`: 0 to 23 <br /> |
| `minute` | `int`: 0 to 59 <br /> |
| `second` | `int`: 0 to 59 <br /> |
| `nano` | `int`: 0 to 999,999,999 <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the nano argument is out of bounds |

### Timestamp

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Timestamp (long time)
```

Constructs a `Timestamp` object using a milliseconds time value. The integral seconds are stored in the underlying date value; the fractional seconds are stored in the `nanos` field of the `Timestamp` object.

<br />

| Parameters ||
|---|---|
| `time` | `long`: milliseconds since January 1, 1970, 00:00:00 GMT. A negative number is the number of milliseconds before January 1, 1970, 00:00:00 GMT. <br /> |

**See also:**

- `https://developer.android.com/reference/java/util/Calendar`

## Public methods

### after

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean after (Timestamp ts)
```

Indicates whether this `Timestamp` object is later than the given `Timestamp` object.

<br />

| Parameters ||
|---|---|
| `ts` | `Timestamp`: the `Timestamp` value to compare with <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if this `Timestamp` object is later; `false` otherwise <br /> |

### before

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean before (Timestamp ts)
```

Indicates whether this `Timestamp` object is earlier than the given `Timestamp` object.

<br />

| Parameters ||
|---|---|
| `ts` | `Timestamp`: the `Timestamp` value to compare with <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if this `Timestamp` object is earlier; `false` otherwise <br /> |

### compareTo

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int compareTo (Date o)
```

Compares this `Timestamp` object to the given `Date` object.

<br />

| Parameters ||
|---|---|
| `o` | `Date`: the `Date` to be compared to this `Timestamp` object <br /> |

| Returns ||
|---|---|
| `int` | the value `0` if this `Timestamp` object and the given object are equal; a value less than `0` if this `Timestamp` object is before the given argument; and a value greater than `0` if this `Timestamp` object is after the given argument. <br /> |

### compareTo

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int compareTo (Timestamp ts)
```

Compares this `Timestamp` object to the given `Timestamp` object.

<br />

| Parameters ||
|---|---|
| `ts` | `Timestamp`: the `Timestamp` object to be compared to this `Timestamp` object <br /> |

| Returns ||
|---|---|
| `int` | the value `0` if the two `Timestamp` objects are equal; a value less than `0` if this `Timestamp` object is before the given argument; and a value greater than `0` if this `Timestamp` object is after the given argument. <br /> |

### equals

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean equals (Timestamp ts)
```

Tests to see if this `Timestamp` object is equal to the given `Timestamp` object.

<br />

| Parameters ||
|---|---|
| `ts` | `Timestamp`: the `Timestamp` value to compare with <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if the given `Timestamp` object is equal to this `Timestamp` object; `false` otherwise <br /> |

### equals

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean equals (Object ts)
```

Tests to see if this `Timestamp` object is equal to the given object. This version of the method `equals` has been added to fix the incorrect signature of `Timestamp.equals(Timestamp)` and to preserve backward compatibility with existing class files. Note: This method is not symmetric with respect to the `equals(Object)` method in the base class.

<br />

| Parameters ||
|---|---|
| `ts` | `Object`: the `Object` value to compare with <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if the given `Object` is an instance of a `Timestamp` that is equal to this `Timestamp` object; `false` otherwise <br /> |

### getNanos

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getNanos ()
```

Gets this `Timestamp` object's `nanos` value.

<br />

| Returns ||
|---|---|
| `int` | this `Timestamp` object's fractional seconds component <br /> |

**See also:**

- `https://developer.android.com/reference/java/sql/Timestamp#setNanos(int)`

### getTime

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long getTime ()
```

Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this `Timestamp` object.

<br />

| Returns ||
|---|---|
| `long` | the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this date. <br /> |

**See also:**

- `https://developer.android.com/reference/java/sql/Timestamp#setTime(long)`

### hashCode

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int hashCode ()
```

Returns a hash code value for this object. The result is the exclusive OR of the two halves of the primitive `long` value returned by the `https://developer.android.com/reference/java/util/Date#getTime()` method. That is, the hash code is the value of the expression:
>
>     (int)(this.getTime()^(this.getTime() >>> 32))

The `hashCode` method uses the underlying `java.util.Date` implementation and therefore does not include nanos in its computation.

<br />

<br />

| Returns ||
|---|---|
| `int` | a hash code value for this object. <br /> |

### setNanos

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setNanos (int n)
```

Sets this `Timestamp` object's `nanos` field to the given value.

<br />

| Parameters ||
|---|---|
| `n` | `int`: the new fractional seconds component <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the given argument is greater than 999999999 or less than 0 |

**See also:**

- `https://developer.android.com/reference/java/sql/Timestamp#getNanos()`

### setTime

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setTime (long time)
```

Sets this `Timestamp` object to represent a point in time that is time milliseconds after January 1, 1970 00:00:00 GMT.

<br />

| Parameters ||
|---|---|
| `time` | `long`: the number of milliseconds. <br /> |

**See also:**

- `https://developer.android.com/reference/java/sql/Timestamp#getTime()`
- `https://developer.android.com/reference/java/sql/Timestamp#Timestamp(long)`
- `https://developer.android.com/reference/java/util/Calendar`

### toString

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String toString ()
```

Formats a timestamp in JDBC timestamp escape format. `yyyy-mm-dd hh:mm:ss.fffffffff`, where `ffffffffff` indicates nanoseconds.

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a `String` object in `yyyy-mm-dd hh:mm:ss.fffffffff` format <br /> |

### valueOf

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static Timestamp valueOf (String s)
```

Converts a `String` object in JDBC timestamp escape format to a `Timestamp` value.

<br />

| Parameters ||
|---|---|
| `s` | `String`: timestamp in format `yyyy-[m]m-[d]d hh:mm:ss[.f...]`. The fractional seconds may be omitted. The leading zero for `mm` and `dd` may also be omitted. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/sql/Timestamp` | corresponding `Timestamp` value <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the given argument does not have the format `yyyy-[m]m-[d]d hh:mm:ss[.f...]` |