Метод withChronology
Метод withChronology
класса DateTimeFormatter
устанавливает хронологию для форматтера.
В параметр мы передаем объект хронологии, который определяет календарную систему для работы с датами.
Импорт
import java.time.format.DateTimeFormatter
import java.time.chrono.Chronology
import java.time.chrono.JapaneseChronology
import java.time.chrono.IsoChronology
Синтаксис
fun withChronology(chrono: Chronology?): DateTimeFormatter
Пример
Используем ISO хронологию по умолчанию для форматирования даты:
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
.withChronology(IsoChronology.INSTANCE)
val date = java.time.LocalDate.of(2025, 12, 31)
val formatted = formatter.format(date)
println(formatted)
Результат выполнения кода:
String "2025-12-31"
Пример
Создадим форматтер без хронологии (null) и сравним с форматтером с ISO хронологией:
val formatterWithoutChrono = DateTimeFormatter.ofPattern("yyyy-MM-dd")
.withChronology(null)
val formatterWithChrono = DateTimeFormatter.ofPattern("yyyy-MM-dd")
.withChronology(IsoChronology.INSTANCE)
val date = java.time.LocalDate.of(2025, 12, 31)
val result1 = formatterWithoutChrono.format(date)
val result2 = formatterWithChrono.format(date)
println("Without chronology: $result1")
println("With ISO chronology: $result2")
Результат выполнения кода:
String "Without chronology: 2025-12-31"
String "With ISO chronology: 2025-12-31"
Пример
Создадим форматтер с японской хронологией для парсинга дат в японском календаре:
val formatter = DateTimeFormatter.ofPattern("GGGG y年 M月 d日")
.withChronology(JapaneseChronology.INSTANCE)
val dateStr = "令和 7年 12月 31日"
val temporal = formatter.parse(dateStr)
println(temporal)
Результат выполнения кода:
String "{JapaneseEra=Heisei, YearOfEra=7, MonthOfYear=12, DayOfMonth=31},ISO"
Смотрите также
-
функцию
ofPattern
классаDateTimeFormatter
,
которая создает форматтер по шаблону -
функцию
withZone
классаDateTimeFormatter
,
которая устанавливает часовой пояс для форматтера -
функцию
withLocale
классаDateTimeFormatter
,
которая устанавливает локаль для форматтера -
класс
JapaneseDate
,
который представляет дату в японском календаре