Я извлекаю некоторые даты из базы данных Parse. Проблема в том, что одна из полученных дат из базы данных возвращает неверную дату. В этом случае, когда я получаю дату 01/10/2016, она возвращает 02/10/2016 вместо этого! Другие даты, однако, возвращают правильную дату (которая в этом случае является двумя другими датами в журнале (07/02/2016 и 21/02/2016).Java getDate возвращает неверную дату
За что странная причина отвечает за возвращение неверная дата только в одной этой дате, в то время как она возвращается на правильную дату на любой другом ?!
(список приведен список для parseObjects на моей базе данных, содержащие даты)
Date[] surveyDate = new Date[list.size()];
for(int i = 0; i<list.size(); i++){
surveyDate[i] = list.get(i).getDate("day");
System.out.println("surveyDate: " +surveyDate[i].getDate() + ", " + (surveyDate[i].getMonth()+1) + ", " + (surveyDate[i].getYear()+1900));
}
Вход
I/System.out: surveyDate: date: 7, month: 2, 2016
I/System.out: surveyDate: date: 21, month: 2, 2016
I/System.out: surveyDate: date: 2, month: 10, 2016
Здесь у меня есть изображение моих дат в базе данных, и вы можете видеть, что только последний (1 октября) возвращается с неправильным значением.
Кстати, не беспокойтесь о других датах, показанных на картинке, они упорядочены и отсортированы по списку.
Даты на базе
Вы не показываете, как вы получаете (или манипулируете) списком. есть ли даты в вашем изображении db, которых нет в вашем журнале, разве вам не интересно об этом? – Stultuske
Извините, я не упоминал об этом. Список упорядочен и отсортирован, поэтому размер списка равен 3, содержащий 3 даты, которые регистрируются. Я отредактирую свое сообщение, чтобы сделать это более ясным –
Попробовали ли вы вместо этого использовать класс 'Calendar'? Эти методы все устарели. Если вы думаете, что они должны работать, попробуйте ли вы вставить одну дату в локальное хранилище данных, а затем сразу же получите ее? Я очень сомневаюсь, что проблема заключается в функции Java getDate. –