Я работаю над существующим Java-приложением. Мое требование - передать значение месяца службе. Раньше в моем коде они использовали GregorianCalendar для представления дат. В настоящее время я изменил часть кода, чтобы использовать org.joda.time.LocalDate. Я знаю, что индекс даты в GregorianCalendar начинается с нуля, поэтому на сегодняшний день он отображается как 13.09.2016 (соответствует 09 октября). Но с моим представлением LocalDate это 13.10.2016. Как я могу изменить свой код, чтобы он соответствовал значениям существующего кода (т.е. 13.09.2016 для представления 13 октября 2016 г.).
Ниже мой код.
MyForm.java
private Date myDate;
public java.util.Date getMyDate()
{
return this.myDate;
}
public void setDate()
{
int day = getMyDay();
int month = getMyMonth();
GregorianCalendar gc = new GregorianCalendar();
// Advance to next year if the month selected is before current month. This
// only happens at year end.
if (gc.get(Calendar.MONTH) > month)
{
gc.add(Calendar.YEAR, 1);
}
gc.set(Calendar.DATE, day);
gc.set(Calendar.MONTH, month);
this.myDate = gc.getTime();
}
MyAction.java
Ниже код представляет мою строку [], которая содержит значения даты.
List<LocalDate> localDatesList = service.getMyDates();
final List<String> tempDatesList = new ArrayList<>(localDatesList.size());
for (final LocalDate date : localDatesList) {
tempDatesList.add(date.toString());
}
final String[] formattedDates = tempDatesList.toArray(new String[localDatesList.size()]);
//represents the dates as 2016-10-14 2016-10-15 .
Посоветуйте, как лучше решить эту проблему. Какой из них будет лучшим вариантом для изменения. Можем ли мы обработать несоответствие этого месяца из LocalDate и GregorianCalendar, чтобы при сравнении объекты, созданные из LocalDate и GregorianCalendar, имели одинаковое значение месяца.
--EDIT-- Я хочу преобразовать List<LocalDate>
ниже, чтобы он соответствовал GregorianCalendar. Я хочу, чтобы моя строка [] содержала значения, которые соответствуют значениям даты GregorianCalendar (т.е. 9 для представления месяца октябрь). Пожалуйста, посоветуйте, мне нужно преобразовать LocalDate в GregorianCalendar...
List<LocalDate> localDatesList = service.getMyDates();
final List<String> tempDatesList = new ArrayList<>(localDatesList.size());
for (final LocalDate date : localDatesList) {
tempDatesList.add(date.toString());
}
final String[] formattedDates = tempDatesList.toArray(new String[localDatesList.size()]);