# Timestamp


```
public final class Timestamp implements Comparable, Parcelable
```

<br />

*** ** * ** ***

A Timestamp represents a point in time independent of any time zone or calendar.

Represented as seconds and fractions of seconds at nanosecond resolution in UTC Epoch time. It is encoded using the Proleptic Gregorian Calendar which extends the Gregorian calendar backwards to year one. Furthermore,It is encoded assuming all minutes are 60 seconds long, specifically leap seconds are "smeared" so that no leap second table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

| See also |
|---|---|
|   | [Timestamp](https://git.page.link/timestamp-proto)The ref timestamp definition |

## Summary

| ### Nested types |
|---|
| `public static class https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp` |

| ### Public fields |
|---|---|
| `static final @https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://developer.android.com/reference/kotlin/android/os/Parcelable.Creator.html<@https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp>` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#CREATOR()` |
| `final int` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#nanoseconds()` |
| `final long` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#seconds()` |

| ### Public constructors |
|---|
| `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#Timestamp(java.util.Date)(@https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://developer.android.com/reference/kotlin/java/util/Date.html date)` |
| `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi.html(value = 26) https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#Timestamp(java.time.Instant)(@https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://developer.android.com/reference/kotlin/java/time/Instant.html time)` |
| `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#Timestamp(kotlin.Long,kotlin.Int)(long seconds, int nanoseconds)` Creates a new `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp`. |

| ### Public methods |
|---|---|
| `int` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#compareTo(com.google.firebase.Timestamp)(@https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp other)` |
| `int` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#describeContents()()` |
| `boolean` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#equals(kotlin.Any)(https://developer.android.com/reference/kotlin/java/lang/Object.html other)` |
| `int` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#hashCode()()` |
| `static final @https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#now()()` |
| `final @https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://developer.android.com/reference/kotlin/java/util/Date.html` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#toDate()()` Returns a new `https://developer.android.com/reference/kotlin/java/util/Date.html` corresponding to this timestamp. |
| `final @https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://developer.android.com/reference/kotlin/java/time/Instant.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi.html(value = 26) https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#toInstant()()` Returns a new `https://developer.android.com/reference/kotlin/java/time/Instant.html` that matches the time defined by this timestamp. |
| `@https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://developer.android.com/reference/kotlin/java/lang/String.html` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#toString()()` |
| `void` | `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp#writeToParcel(android.os.Parcel,kotlin.Int)(@https://developer.android.com/reference/kotlin/androidx/annotation/NonNull.html https://developer.android.com/reference/kotlin/android/os/Parcel.html dest, int flags)` |

## Public fields

### CREATOR

```
public static final @NonNull Parcelable.Creator<@NonNull Timestamp> CREATOR
```

### nanoseconds

```
public final int nanoseconds
```

### seconds

```
public final long seconds
```

## Public constructors

### Timestamp

```
public Timestamp(@NonNull Date date)
```

### Timestamp

```
@RequiresApi(value = 26)
public Timestamp(@NonNull Instant time)
```

### Timestamp

```
public Timestamp(long seconds, int nanoseconds)
```

Creates a new `https://firebase.google.com/docs/reference/android/com/google/firebase/Timestamp`.

| Parameters |
|---|---|
| `long seconds` | represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive. |
| `int nanoseconds` | represents non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanoseconds values that count forward in time. Must be from 0 to 999,999,999 inclusive. |

## Public methods

### compareTo

```
public int compareTo(@NonNull Timestamp other)
```

### describeContents

```
public int describeContents()
```

### equals

```
public boolean equals(Object other)
```

### hashCode

```
public int hashCode()
```

### now

```
public static final @NonNull Timestamp now()
```

### toDate

```
public final @NonNull Date toDate()
```

Returns a new `https://developer.android.com/reference/kotlin/java/util/Date.html` corresponding to this timestamp.

This may lose precision.

### toInstant

```
@RequiresApi(value = 26)
public final @NonNull Instant toInstant()
```

Returns a new `https://developer.android.com/reference/kotlin/java/time/Instant.html` that matches the time defined by this timestamp.

### toString

```
public @NonNull String toString()
```

### writeToParcel

```
public void writeToParcel(@NonNull Parcel dest, int flags)
```