在kotlin android studio的API级别26中查找当前月份,上个月和下个月



任何方法可以获得当前月份,前5个月和下5个月,这也适用于android 6。我正在使用LocalDate类,这是完美的作品以上Android 8 API级别26。

@RequiresApi(Build.VERSION_CODES.O)
@SuppressLint("SimpleDateFormat")
fun getCalculatedMonth(date: String, month: Int): String? {
val ld = LocalDate.parse(date)
val currentMonth = ld.minusMonths(month.toLong())
Timber.tag("currentMonth").d(currentMonth.toString())
var dateFormat = SimpleDateFormat("yyyy-MM-dd")
val newDate = dateFormat.parse(currentMonth.toString())
dateFormat = SimpleDateFormat("yyyy-MM")
return dateFormat.format(newDate!!)
}

viewModel.selectedMonth.value = getCalculatedMonth("2022-05-17" , month_value)

这里month_value是->当月为0下个月的前一个月-1

但问题是,它只支持以上android版本8。是在API级别26下获取前一个月、当前月和下个月的任何其他方法。

如果有任何解决方案,请评论你的答案。

我找到了答案,这也在android版本8下工作完美

使用这个方法

@SuppressLint("SimpleDateFormat")
fun getCalculatedMonths( month: Int): String? {
val c: Calendar = GregorianCalendar()
c.add(Calendar.MONTH, -month)
val sdfr = SimpleDateFormat("yyyy-MM")
return sdfr.format(c.time).toString()
}

这里我得到这样的结果:-

  1. getCalculatedMonths(0)→2022 - 05年
  2. getCalculatedMonths(1)→2022 - 04
  3. getCalculatedMonths(1)→2022 - 06年
  4. getCalculatedMonths(2)→2022 - 03年
  5. getCalculatedMonths(2)→2022 - 07年