#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();
}