Правильная работа с датами в Kotlin

Привет %username%! Сегодня мы рассмотрим несколько способов взаимодействия с датами в Kotlin: создание, форматирование, управление и т.д. Урок рассчитан на начинающего пользователя, уже знакомого с основами языка.

Kotlin текущая дата — как получить?

kotlin get current date time
kotlin current date time

Итак, для создания нам потребуется 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()

val myDate = LocalDate.of(2020, 10, 20)

Kotlin string to date

Итак, теперь осуществим обратный процесс, а именно превратим дату в текст в Котлин. Воспользуемся функцией toString(), дабы получить результат. Создаем переменную и используем уже хорошо известный метод parse()

val myDate = LocalDate.parse("2020-11-30")

а сейчас посмотрим что получится после применения toString():

assertThat(myDate.toString()).isEqualTo("2020-11-30")

Отлично, мы получили результат, но что если мы хотим изменить шаблон вывода на свой? Чтобы изменить шаблон вывода нам понадобится объект DateTimeFormatter и его метод format() которому мы и передадим ему строку с шаблоном:

val template = DateTimeFormatter.ofPattern("dd-MMMM-yyyy")
val templateDate = date.format(template)

Получаем вполне себе читаемую понятную строку:

assertThat(formattedDate).isEqualTo("30-November-2020")

Kotlin — получаем свойства LocalDate

LocalDate дает пользователю множество простых инструментов, дабы получить свойства — месяц, год, день и даже эру. Полностью обо всех методах можно почитать тут.

var testData = LocalDate.parse("2020-11-30")

assertThat(testData .year).isEqualTo(2020)
assertThat(testData .month).isEqualTo(Month.NOVEMBER)

Выводы

Итак, мы рассмотрели основные приемы по работе с датой в Kotlin: преобразованию ее в текст и обратно, как получить дни недели и другие свойства. Дата Kotlin не сильно отличается от таковой в Java, поэтому все приемы и способы работы можно легко получить, прочитав руководство по Java.

Всем пока!

Оставить ответ