Как сгруппировать строки по неделям, месяцам и кварталам?
Получаю несколько да в String формате . И мне нужно их сгруппировать по неделям, месяцам и кварталам . Как это реализовать на java?
Пробовал таким способом
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
private Map<Integer, List<String>> dates;
private String Date;
public void DataPick() {
dates = new HashMap<>();
putDataInCollection("2017-01-01");
putDataInCollection("2017-01-01");
putDataInCollection("2017-01-05");
putDataInCollection("2017-01-10");
putDataInCollection("2017-01-12");
putDataInCollection("2017-01-15");
}
@Test
public void putDataInCollection(String order){
Calendar calendar = Calendar.getInstance();
calendar.setTime((java.util.Date) getDate(order));
List<String> datesList ;
if (dates.get(calendar.get(Calendar.WEEK_OF_YEAR))!=null) {
datesList = dates.get(calendar.get(Calendar.WEEK_OF_YEAR));
} else {
datesList = new ArrayList<>();
}
datesList.add(order);
dates.put(calendar.get(Calendar.WEEK_OF_YEAR),datesList);
System.out.println(dates);
}
@Test
public Comparable<java.util.Date> getDate(String order) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date convertedDate = new Date();
try {
convertedDate = dateFormat.parse(Date);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(convertedDate);
return convertedDate;
}
}