Ошибка в записывании даты в postgresql

241
19 марта 2017, 04:18

Входные данные:2017-03-15

    String date="2017-03-15";
    LocalDate localedate = LocalDate.parse(   date  );
    cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, localedate.getYear());
    cal.set(Calendar.MONTH, localedate.getMonthValue());
    cal.set(Calendar.DAY_OF_MONTH, localedate.getDayOfMonth());
    date1 = cal.getTime();

На выходе я получаю - Sat Apr 15 16:12:47 GMT+02:00 2017. Почему с месяцем ошибка? 2-й момент: я записываю дату в postgresql, а мне в бд записывается не только дата но и время. Как этого избежать. Для справки: тип столбца в postgresql, я использую date. В документации написано - дата (без времени суток). В Pojo которое маппиться на таблицу использую соответственно java.util.Date

Answer 1

Из документации на LocalDate getMonthValue() возвращает значение месяца от 1 до 12, для Calendar же set(Calendar.MONTH, ...) принимает значения месяца от 0, см. Calendar.JANUARY и т.д.

java.util.Date -- содержит дату и время, если в БД сохраняется только дата, то после чтения из БД ваше поля типа java.util.Date будет содержать дату и 00:00:00. Чтобы избежать используйте сразу LocalDate.

READ ALSO
Программа грузит комп

Программа грузит комп

Здравствуйте! Написал свою первую программу на Java, но работает она некорректноФункционал:

344
Изменить изображение в Android

Изменить изображение в Android

Всем привет! Столкнулся с такой проблемой: как изменить готовое изображение (фотографию), нарисовать на ней текст (в моем случае мне нужно...

236
Список аудио файлов android устройства

Список аудио файлов android устройства

Возник вопрос - как получить список аудио файлов с устройства и вывести на экран в диалоговом окнеПоиск в интернете не дал информации на русском...

280
Код для Android приложения, которое определяет номер телефона [требует правки]

Код для Android приложения, которое определяет номер телефона [требует правки]

Хочу попробовать сделать что-то вроде диспетчерской службы такси на планшеты (смартфоны)

207