Как создать дату в Kotlin?
Итак, для создания даты тебе потребуется объект LocalDate и его метод parse(). Он по дефолту пользует базовый шаблон даты yyyy-MM-dd (год, месяц, день)
val myDate = LocalDate.parse("2020-12-12")
Но формат вывода даты можно изменить на свой, для этого можно воспользоваться методом ofPattern() класса DateTimeFormatter
val formatDate = DateTimeFormatter.ofPattern("dd-MM-yyyy")
val date = LocalDate.parse("31-12-2020", formatDate)
Кроме того, если ты захочешь напрямую изменить форматирование даты, то можно воспользоваться методом of() у LocalDate
val myDate = LocalDate.of(2020, 10, 20)
Преобразование даты в текст Kotlin
Итак, теперь осуществим обратный процесс, а именно превратим дату в текст в Котлин. Воспользуемся функцией toString(), дабы получить результат. Создаем переменную myDate и используем уже хорошо известный способ LocalDate.parse()
val myDate = LocalDate.parse("2020-11-30")
а сейчас посмотрим что нам выведет метод toString():
assertThat(myDate.toString()).isEqualTo("2020-11-30")
Отлично, мы получили результат, но что если мы хотим изменить шаблон вывода на свой? Чтобы изменить шаблон даты в Kotlin нам понадобится объект DateTimeFormatter и его метод format() которому мы и передадим ему строку с шаблоном:
val template = DateTimeFormatter.ofPattern("dd-MMMM-yyyy")
val templateDate = date.format(template)
Получаем вполне себе читаемую понятную строку:
assertThat(formattedDate).isEqualTo("30-November-2020")
Kotlin — получаем свойства LocalDate
LocalDate дает пользователю множество простых инструментов, дабы получить свойства — месяц, год, день и даже эру. Полностью обо всех методах работы с датами можно почитать тут.
val myDate = LocalDate.parse("2020-11-30")
assertThat(myDate.year).isEqualTo(2020)
assertThat(myDate.month).isEqualTo(Month.NOVEMBER)
assertThat(myDate.dayOfMonth).isEqualTo(30)
assertThat(myDate.era.toString()).isEqualTo("CE")
Выводы
Итак, мы рассмотрели основные приемы по работе с датой в Kotlin: преобразование даты в текст и обратно, как получить дни недели и другие свойства у даты.
Взаимодействие и создание дат в Kotlin не сильно отличается от таковой в Java, поэтому все приемы и способы работы с датами в Kotlin можно легко получить, прочитав руководство по работе с датами в Java.
Удачи в освоении Kotlin!