请使用java写一个获取一个List<String>类型的获取前六个月,包含本月的年月String数组,格式为yyyy-MM
时间: 2023-06-02 21:04:48 浏览: 54
-dd。谢谢!
对于您的问题,我可以给出以下Java代码来获取前六个月,包含本月的年月String数组,格式为yyyy-MM-dd:
```java
List<String> months = new ArrayList<>();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
for (int i = 0; i < 6; i++) {
months.add(dateFormat.format(calendar.getTime()));
calendar.add(Calendar.MONTH, -1);
}
Collections.reverse(months);
```
使用上述代码可以得到一个包含前六个月,包含本月的年月字符串列表,您可以自行处理并使用。
相关问题
java 传入两个日期Date类型 获取相隔每天的年月日格式(yyyy-MM-dd)
可以使用 Java 8 中的 `java.time` 包来计算两个日期之间相隔天数,并逐日进行处理,格式化成 yyyy-MM-dd 格式。
示例代码如下:
```java
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class DateUtils {
public static List<String> getDaysBetweenDates(Date startDate, Date endDate) {
LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Period period = Period.between(startLocalDate, endLocalDate);
int days = period.getDays();
List<String> dateList = new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
for (int i = 0; i <= days; i++) {
LocalDate currentDate = startLocalDate.plusDays(i);
dateList.add(currentDate.format(formatter));
}
return dateList;
}
}
```
可以调用该方法,获取两个日期之间每一天的日期字符串列表:
```java
Date startDate = new Date();
Date endDate = new Date(System.currentTimeMillis() + 86400000); // 当前日期的下一天
List<String> dateList = DateUtils.getDaysBetweenDates(startDate, endDate);
for (String date : dateList) {
System.out.println(date);
}
```
输出结果为:
```
2021-09-26
2021-09-27
```
java实现获取上一个月所有日期信息并返回
以下是Java实现获取上一个月所有日期信息并返回的示例代码:
```java
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class PreviousMonthDays {
public static void main(String[] args) {
List<String> dates = getPreviousMonthDays();
for (String date : dates) {
System.out.println(date);
}
}
/**
* 获取上一个月所有日期信息
*
* @return 日期列表,格式为yyyy-MM-dd
*/
public static List<String> getPreviousMonthDays() {
List<String> dates = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int days = getDaysOfMonth(year, month);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for (int i = 1; i <= days; i++) {
Date date = new Date(year - 1900, month - 1, i);
String dateString = sdf.format(date);
dates.add(dateString);
}
return dates;
}
/**
* 获取指定年月的天数
*
* @param year 年份
* @param month 月份
* @return 天数
*/
public static int getDaysOfMonth(int year, int month) {
int days = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
days = 29;
} else {
days = 28;
}
break;
default:
break;
}
return days;
}
}
```
代码中使用Calendar类获取到上个月的年份和月份,然后根据年份和月份获取到上个月的天数,并使用SimpleDateFormat类将日期格式化成yyyy-MM-dd的形式,最后将所有日期信息保存到一个列表中并返回。