Как мне представить даты в Kotlin / Android? - PullRequest
0 голосов
/ 11 ноября 2018

Я хочу сделать класс Person в приложении для Android. В этом классе я хочу сохранить день рождения этого человека, а затем вычислить с этой датой (например, сколько ему лет или сколько дней осталось до его следующего дня рождения). Я не знаю, как это сделать, хотя я пробовал несколько классов, таких как Date (что устарело) и GregorianCalendar, который недоступен ниже уровня API 28 (я использую уровень API 21).

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Используйте ThreeTen Android Backport , чтобы вывести java.time на Android pre API 26.

Затем вы можете использовать LocalDate для представления дня рождения без информации о часовом поясе (так как он действителен во всех часовых поясах). См. https://stackoverflow.com/a/39379431/4265739 для обзора классов времени.

Для расчета возраста с java.time в kotlin вы можете использовать (бесстыдно адаптировано из this )

  val start = LocalDate.of(1996, 2, 29)
  val end = LocalDate.of(2014, 2, 28) // use for age-calculation: LocalDate.now()
  val years = ChronoUnit.YEARS.between(start, end)
  println(years) // 17

Чтобы узнать, как установить, следуйте инструкциям в репозитории github и посмотрите Как использовать ThreeTenABP в Android Project , если у вас возникли проблемы.

0 голосов
/ 11 ноября 2018

Действительно, класс Java Date ужасен во многих отношениях; держись подальше от этого. Если вы не можете использовать хорошие новые Java 8, такие как GregorianCalendar, библиотека Joda-Time станет отличной заменой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...