# DateTimeFormatter

Artifact: [androidx.core:core-i18n](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/i18n/DateTimeFormatter.kt+class:androidx.core.i18n.DateTimeFormatter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

*** ** * ** ***


```
public final class DateTimeFormatter
```

<br />

*** ** * ** ***

DateTimeFormatter is a class for international-aware date/time formatting.

It is designed to encourage best i18n practices, and work correctly on old / new Android versions, without having to test the API level everywhere.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/core/i18n/DateTimeFormatter#DateTimeFormatter(androidx.core.i18n.DateTimeFormatterJdkStyleOptions,java.util.Locale)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/i18n/DateTimeFormatterJdkStyleOptions options, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Locale.html locale )` |
| `https://developer.android.com/reference/androidx/core/i18n/DateTimeFormatter#DateTimeFormatter(android.content.Context,androidx.core.i18n.DateTimeFormatterSkeletonOptions,java.util.Locale)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/i18n/DateTimeFormatterSkeletonOptions options, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Locale.html locale )` |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/core/i18n/DateTimeFormatter#format(java.util.Calendar)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Calendar.html calendar)` Formats a Calendar object into a user friendly locale aware date/time string. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/core/i18n/DateTimeFormatter#format(java.util.Date)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Date.html date)` Formats a Date object into a user friendly locale aware date/time string. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/core/i18n/DateTimeFormatter#format(kotlin.Long)(long milliseconds)` Formats an epoch time into a user friendly, locale aware, date/time string. |

## Public constructors

### DateTimeFormatter

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

```
public DateTimeFormatter(
    @NonNull DateTimeFormatterJdkStyleOptions options,
    @NonNull Locale locale
)
```

### DateTimeFormatter

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

```
public DateTimeFormatter(
    @NonNull Context context,
    @NonNull DateTimeFormatterSkeletonOptions options,
    @NonNull Locale locale
)
```

## Public methods

### format

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

```
public final @NonNull String format(@NonNull Calendar calendar)
```

Formats a Calendar object into a user friendly locale aware date/time string.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Calendar.html calendar` | the date / time to format. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | the formatted date / time string. |

### format

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

```
public final @NonNull String format(@NonNull Date date)
```

Formats a Date object into a user friendly locale aware date/time string.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Date.html date` | the date / time to format. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | the formatted date / time string. |

### format

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/core#1.0.0)

```
public final @NonNull String format(long milliseconds)
```

Formats an epoch time into a user friendly, locale aware, date/time string.

| Parameters |
|---|---|
| `long milliseconds` | the date / time to format expressed in milliseconds since January 1, 1970, 00:00:00 GMT. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | the formatted date / time string. |