我想使用 AndroidStudio 在 Kotlin 中从当月开始的最后三个月,使用 viwepager2 进行选项卡布局

I want to get last three months from current month in Kotlin Using AndroidStudio, tab layout using viwepager2

伙计们实际上我的逻辑是我想在选项卡布局中显示最近三个月的当前月份,我用它来向用户显示月份明智的数据所以如果显示它的“六月”所以我想要向用户显示这 3 个月数据的选项卡“四月、五月、六月”。

好的,这是您想要的代码

对于JAVA:

Calendar c = new GregorianCalendar();
c.setTime(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("MMMM"); //add space after MMMM and add yyyy for year
Log.d("NOW ", sdf.format(c.getTime()));   // NOW
c.add(Calendar.MONTH, -1);
Log.d("One month ago ", sdf.format(c.getTime()));   // One month ago
c.add(Calendar.MONTH, -1);
Log.d("Two month ago ", sdf.format(c.getTime()));   // Two month ago

对于 KOTLIN:

val c: Calendar = GregorianCalendar()
        c.setTime(Date())
        val sdf = SimpleDateFormat("MMMM") //add space after MMMM and add yyyy for year

        Log.d("NOW ", sdf.format(c.getTime())) // NOW

        c.add(Calendar.MONTH, -1)
        Log.d("One month ago ", sdf.format(c.getTime())) // One month ago

        c.add(Calendar.MONTH, -1)
        Log.d("Two month ago ", sdf.format(c.getTime())) // Two month ago

java.time

考虑使用 java.time,现代 Java 日期和时间 API,作为你的约会工作。抱歉我只能写Java.

    Month thisMonth = Month.from(YearMonth.now(ZoneId.systemDefault()));
    List<Month> months
            = Arrays.asList(thisMonth.minus(2), thisMonth.minus(1), thisMonth);
    for (Month m : months) {
        System.out.println(m.getDisplayName(TextStyle.FULL_STANDALONE, Locale.ENGLISH));
    }

本月运行时输出:

April
May
June

别担心:这也适用于新年。例如,1 月减去 2 个月就是 11 月。

问题:java.time 不需要 Android API 26 级吗?

java.time 在新旧 Android 设备上都能很好地工作。它只需要至少 Java 6.

  • 在 Java 8 和更新的 Android 设备上(从 API 级别 26)内置了现代 API。
  • 非Android Java 6 和 7 获得 ThreeTen Backport,现代 类 的 backport(ThreeTen 用于 JSR 310;请参阅底部的链接)。
  • 在较旧的 Android 上使用脱糖或 ThreeTen Backport 的 Android 版本。它叫做 ThreeTenABP。在后一种情况下,请确保使用子包从 org.threeten.bp 导入日期和时间 类。

链接