Как получить месяц от Material design Datepicker Android котлин

#android #kotlin

Вопрос:

У меня есть выбор даты из material design, он хорошо открывается в приложении. Теперь, как я могу получить, например, выбранный месяц из списка дат.

Инициализируйте указатель даты:

 val datePicker = MaterialDatePicker.Builder.datePicker()
    .setTitleText("Kies een datum")
    .setSelection(MaterialDatePicker.todayInUtcMilliseconds())
    .build()
 

При нажатии кнопки » Вкл » открывается календарь:

 fun pickDate() {
    binding.DatepickerButton.setOnClickListener {

        datePicker.show(activity?.supportFragmentManager!!, datePicker.toString())


    }
}
 

так оно и есть, но я не могу получить из него данные.

Ответ №1:

Для Java 8 вы можете использовать API даты и времени

 binding.DatepickerButton.addOnPositiveButtonClickListener {
    var dateFormatter = DateTimeFormatter.ofPattern("MM", Locale.getDefault())
    val month = dateFormatter.format(
                Instant.ofEpochMilli(it)
                    .atZone(ZoneId.systemDefault()).toLocalDate()
            )
}
 

В противном случае вы можете использовать SimpleDateFormatter

  binding.DatepickerButton.addOnPositiveButtonClickListener {
     val calendar = Calendar.getInstance() 
     val simpleDateFormatter = SimpleDateFormat("MM", Locale.getDefault())
     calendar.time = Date(it)
     val month = simpleDateFormatter.format(calendar.time)
 }
 

Ответ №2:

Попробуйте этот щелчок по положительной кнопке, нажмите прослушиватель. после получения даты вы можете извлечь из нее месяц.

  binding.DatepickerButton.addOnPositiveButtonClickListener {
     val (startOfRange, endOfRange) = it   // in case date range operation
     val date = it //  single select date
     String dateString = DateFormat.format("dd/MM/yyyy", new Date(date)).toString();
 }