LocaleDateTime.dayOfWeek返回错误的值



我有一个calendarView,这是我的代码

binding.calendarView.setOnDateChangeListener(CalendarView.OnDateChangeListener { view, year, month, dayOfMonth ->
Toast.makeText(applicationContext, "$dayOfMonth/$month/$year", Toast.LENGTH_LONG).show()
var selectedDate = LocalDateTime.of(year, month, dayOfMonth, 0, 0)
val weekdayValue = selectedDate.dayOfWeek.value
val weekdayName = selectedDate.dayOfWeek.name
})

当我点击星期一时,weekdayValue= 5,weekdayName= "Friday"。当我点击星期三时,weekdayValue= 7,weekdayName= "Sunday"

我的calendarView中一周的第一天是2,所以是星期一。土司向我展示了良好的价值观。

有什么问题?

CalendarView使用基于0的月份(1月是0),LocalDateTime使用基于1的月份(1月是1)。您需要使用LocalDateTime.of(year, month + 1, dayOfMonth, 0, 0)

最新更新