从 Date() 计算前几个月重复一个月

Calculating previous months from Date() duplicates a month

我正在尝试从今天开始的前 12 个月,但它显示

开始日期 - 5 月 30 日星期一 22:57:30 GMT+01:00 2022

显示的月份是 - 这些是 monthsArray 中的值,2022 年 3 月显示两次

April 2022
March 2022 (DISPLAYED TWICE)
March 2022 (DISPLAYED TWICE)
February 2022
January 2022
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021

这是显示月份的逻辑

    val monthsArray: ArrayList<String> = ArrayList()
    val date = Date()
    var i = 1
    while (i <= 12) {
        date.month = date.month - 1
        monthsArray.add(readableSpinnerItemDate(date.time))
        i++
    }

请问这里有什么问题吗

我认为这应该可以满足您的需求。

val monthsArray = (0..11).map { LocalDateTime.now().minusMonths(it.toLong()).format(DateTimeFormatter.ofPattern("MMMM yyyy")) }