如何在java中获得上个月/年?java.time

2022-08-31 22:17:48

我如何知道Java中的最后一个月及其年份?

例如,如果今天是 2012 年 10 月 10 日,则结果应为 和 。如果今天是 2013 年 1 月 10 日,则结果应为 和 。Month = 9Year = 2012Month = 12Year = 2012


答案 1

您的解决方案就在这里,但您需要使用减法而不是加法

c.add(Calendar.MONTH, -1);

然后,您可以在 上调用 getter 以获取正确的字段Calendar

int month = c.get(Calendar.MONTH) + 1; // beware of month indexing from zero
int year  = c.get(Calendar.YEAR);

答案 2

java.time

使用 Java 8 中内置的框架:java.time

import java.time.LocalDate;

LocalDate now = LocalDate.now(); // 2015-11-24
LocalDate earlier = now.minusMonths(1); // 2015-10-24

earlier.getMonth(); // java.time.Month = OCTOBER
earlier.getMonth.getValue(); // 10
earlier.getYear(); // 2015

推荐