在 API 级别 26 的 kotlin android 工作室中查找当前月份、上个月和下个月

Find current month , previous month and next month in kotlin android studio in API level 26

任何获取当前月份、前 5 个月和后 5 个月的方法也适用于 android 6。我使用的是 LocalDate Class,它在 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 下个月 上个月 -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