我需要打印当月的过去6个月的名字。
例如,2016年4月开始运营时,我需要打印:nov(2015),dec(2015),jan(2016),feb(2016),march(2016),4月(2016)
Format formatter = new SimpleDateFormat("MMMM YYYY");
Calendar c = Calendar.getInstance();
String[] thisAndLastFiveMonths = new String[6];
for (int i = 0; i < thisAndLastFiveMonths.length; i++) {
thisAndLastFiveMonths[i] = formatter.format(c.getTime());
c.add(Calendar.MONTH, -1);
System.out.println(c);
答案 0 :(得分:6)
使用Java Time API,您可以构建代表当前年月的YearMonth
对象,并致电minusMonths
以减去数月。
然后,您可以使用Month.getDisplayName(style, locale)
获取月份名称的文字表示。给定的TextStyle
用于设置输出样式;您可以在案件中使用SHORT
:
简短文字,通常是缩写。例如,星期一星期一可能会输出“星期一”。
public static void main(String[] args) {
for (int i = 5; i >= 0; i--) {
YearMonth date = YearMonth.now().minusMonths(i);
String monthName = date.getMonth().getDisplayName(TextStyle.SHORT, Locale.ENGLISH);
System.out.println(monthName + "(" + date.getYear() + ")");
}
}
在2016年4月投放时打印:
Nov(2015)
Dec(2015)
Jan(2016)
Feb(2016)
Mar(2016)
Apr(2016)