Метод withLocale
Метод withLocale класса DateTimeFormatter устанавливает локаль для форматтера, что позволяет форматировать и парсить даты и времени с учетом языковых и региональных особенностей.
В параметр мы передаем объект Locale, который определяет язык и регион для форматирования.
Импорт
import java.time.format.DateTimeFormatter
import java.util.Locale
Синтаксис
fun withLocale(locale: Locale): DateTimeFormatter
Пример
Создадим форматтер с немецкой локалью для отображения названия месяца:
val formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy")
val germanFormatter = formatter.withLocale(Locale.GERMAN)
val date = LocalDate.of(2025, 12, 31)
val formattedDate = date.format(germanFormatter)
println(formattedDate)
Результат выполнения кода:
String "31 Dezember 2025"
Пример
Используем французскую локаль для парсинга даты с французским названием месяца:
val frenchFormatter = DateTimeFormatter.ofPattern("dd MMMM yyyy")
.withLocale(Locale.FRENCH)
val dateStr = "31 décembre 2025"
val date = LocalDate.parse(dateStr, frenchFormatter)
println(date)
Результат выполнения кода:
String "2025-12-31"
Пример
Сравним форматирование с разными локалями:
val date = LocalDate.of(2025, 7, 15)
val formatter = DateTimeFormatter.ofPattern("EEEE, d MMMM yyyy")
val usFormatter = formatter.withLocale(Locale.US)
val italianFormatter = formatter.withLocale(Locale.ITALIAN)
val usFormatted = date.format(usFormatter)
val itFormatted = date.format(italianFormatter)
println("US: $usFormatted")
println("IT: $itFormatted")
Результат выполнения кода:
String "US: Tuesday, 15 July 2025"
String "IT: martedì, 15 luglio 2025"