【发布时间】:2021-09-02 23:15:12
【问题描述】:
我正在尝试从给定月份(取自 DB)将前 12 个月放入一个数组列表中。
List<String> allDates = new ArrayList<String>();
sqlQuery="select max(date) from Table_Name";
maxDate="Jan-2016"; (Result from Query);
从 maxDate 获取前 12 个月,我使用 SimpleDateFormat。
我想从 Given Month (maxDate) 计算前 12 个月,而不是从当前月份,我尝试了以下代码。
// Parsing maxDate to an integer (say Jan-2016 = 0, Feb-2016= 1)
Date date = new SimpleDateFormat("MMM-yyyy").parse(maxDate);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month=cal.get(Calendar.MONTH);
System.out.println("month : "+month);
// Looping to get previous 12 months from current month.
SimpleDateFormat month_date = new SimpleDateFormat("MMM-yyyy");
for (int i = 12; i > 0; i--) {
Calendar calendar1 = Calendar.getInstance();
calendar1.add(Calendar.MONTH, -i);
String month_name1 = month_date.format(calendar1.getTime());
allDates.add(month_name1);
}
System.out.println(allDates);
由于月份是从 (0 - 11) 编号的,所以我无法实现。 请提出一个想法来计算给定月份的前 12 个月。感谢您的帮助!
【问题讨论】:
-
它们需要按降序排列吗?你能带走一年,然后及时向前迭代吗?另外,
allDates是什么类型的对象? -
我需要它按降序排列,这样我才能获得前 12 个月的数据。
allDates这里是ArrayList。我需要将这 12 个月添加到 allDates。
标签: java date simpledateformat