Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194

Ошибка LocalDate.parse ?

18.11.2021, 16:57. Показов 1160. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня форумчане, не пойму почему сохраняется неправильная дата?

Описание: Через html заполняю данные в виде даты "yyyy-MM-dd" String-om, затем сохраняю их в базу данных преобразуя String в формат Date.

Ошибка: Сохраняется почему-то всегда на день меньше заданной даты. Пример: Если вбить 2021-07-07, сохраняется 2021-07-06.


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    @Override
    public void execute(DelegateExecution execution) throws Exception {
        final Connection connection = DatabaseConnection.getConnection();
        final CallableStatement max = connection.prepareCall("SELECT MAX(idAntrag) FROM antraege");
        final ResultSet result = max.executeQuery();
        int id = !result.next() ? 0 : result.getInt(1) + 1;
        result.close();
        execution.setVariable("ANTRAG_ID", id);
        final String sql = "INSERT INTO antraege (idAntrag, idMa, start, end) " +
                "VALUES (?, ?, ?, ?)";
        final CallableStatement statement = connection.prepareCall(sql);
        statement.setInt(1, id);
        statement.setInt(2, Integer.parseInt(execution.getVariable("ANTRAG_IDM").toString()));
        statement.setDate(3, Date.valueOf(LocalDate.parse((String) execution.getVariable("ANTRAG_START"),
                DateTimeFormatter.ofPattern("yyyy-MM-dd")).format(DateTimeFormatter.ISO_LOCAL_DATE)));
        statement.setDate(4, Date.valueOf(LocalDate.parse((String) execution.getVariable("ANTRAG_END"),
                DateTimeFormatter.ofPattern("yyyy-MM-dd")).format(DateTimeFormatter.ISO_LOCAL_DATE)));
        statement.executeUpdate();
        statement.close();
        connection.close();
}
Предполагаю, что проблема в перегоне с String в Date. Вопрос - как пофиксить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2021, 16:57
Ответы с готовыми решениями:

LocalDate переменная
подскажите, пожалуйста, как правильно создавать переменную а, в которой можно хранить дату, которую введет сам пользователь. вот import...

LocalDate и валидация с DateTimeFormatter
Доброго времени суток всем. Уже 2й день бьюсь, не могу найти не информации ни решения. ЗАДАЧА: Есть WEB-приложение, есть страница с...

Распарсить строку в LocalDate
Как распарсить строку вида "27 января 2020" в объект типа LocalDate?

8
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
21.11.2021, 08:34
Предлагаю

1. Посмотреть методы класса Date

2. Для перевода из Sting в Date, использовать вспомогательный класс, например SimpleDateFormat

Java
1
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
3. Не отправлять String-om а оправлять массивом.

Так сразу с первого взляда на ваш код не скажу. Мне бы, например понадобилось время чтобы вникнуть и разобраться ввашем коде.

4.
Цитата Сообщение от StalinStr Посмотреть сообщение
Если вбить 2021-07-07, сохраняется 2021-07-06.
То есть первое поле и второе заполняется правильно, только третье ставит предыдущую дату.
0
 Аватар для Aviz__
2756 / 2063 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
21.11.2021, 10:58

Не по теме:

привет! ты еще немчинский студент?


Цитата Сообщение от StalinStr Посмотреть сообщение
LocalDate.parse(
сюда приходит какие стринговые значения? пробовал их ставить руками?
0
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
23.11.2021, 13:25  [ТС]
Цитата Сообщение от vvm28 Посмотреть сообщение
То есть первое поле и второе заполняется правильно, только третье ставит предыдущую дату.
Я тут потестил на днях дабы понять почему. Забавно следующее - такая ошибка возникает только при сохранении в базу данных. В других классах, где эти даты используются для "других нужд", работает все отлично и подобной ошибки не возникает. Поэтому мои предположения по поводу, что ошибка возникает при "парсеровке" более не релевантны.
Ошибка в html и дальнейшей передаче тоже исключается, иначе в других классах тоже работало бы неправильно.
Остается только сохранение в DB, но почему именно сохраняется на день меньше, чем нужно только тут - непонятно.

Добавлено через 37 минут
Цитата Сообщение от Aviz__ Посмотреть сообщение
сюда приходит какие стринговые значения? пробовал их ставить руками?
Например "2021-11-10" или "2021-11-29". Дабы время не терять я уже все протестил. "Парсеровка", на которую я сначала пинял, работает правильно. Такую же я использую в других классах для проверок и все работает отлично, только вот при сохранении в DB какой-то косяк, который я не могу найти.

Не по теме:

Цитата Сообщение от Aviz__ Посмотреть сообщение
ты еще немчинский студент?
Привет, еще да. Финишь уже не за горами, но еще есть над чем нужно потрудиться.
У тебя как дела?

0
 Аватар для Aviz__
2756 / 2063 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
23.11.2021, 14:01

Не по теме:

Цитата Сообщение от StalinStr Посмотреть сообщение
У тебя как дела?
спасибо, нормуль))!
Цитата Сообщение от StalinStr Посмотреть сообщение
Финишь уже не за горами
достойно уважение, молодец!!!


Цитата Сообщение от StalinStr Посмотреть сообщение
при сохранении в DB
какая BD? простой класс, только с датой и в БД простую табличку (в каком формате она это поле держит) тестил?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
23.11.2021, 14:04
StalinStr, потому что часовые пояса, вероятно
0
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
24.11.2021, 21:38  [ТС]

Не по теме:


Цитата Сообщение от Aviz__ Посмотреть сообщение
достойно уважение, молодец!!!
Еще пока рано ловить респекты, когда закончу, тогда можно будет:)



Цитата Сообщение от Aviz__ Посмотреть сообщение
какая BD?
MySQL

Цитата Сообщение от Aviz__ Посмотреть сообщение
тестил?
Да, много уже что пробовал. Формат полей и прочие мелочи смотрел в первую очередь. Я думаю, что принича, которую озвучил xoraxax, самая реалистичная из оставшихся.

Цитата Сообщение от xoraxax Посмотреть сообщение
часовые пояса
Скорее всего, это единственное направление, где я еще не рыл.. Благодарю.
0
 Аватар для Aviz__
2756 / 2063 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
25.11.2021, 08:01
Цитата Сообщение от StalinStr Посмотреть сообщение
много уже что пробовал.
т.е. ты руками делал sql запросы (скажем, через phpmyadmin) и все было ок, и часовые пояса были не причем? забавно)).
0
6 / 9 / 0
Регистрация: 19.10.2019
Сообщений: 194
25.11.2021, 15:27  [ТС]
Цитата Сообщение от Aviz__ Посмотреть сообщение
и часовые пояса были не причем?
Ну по сути да. Косяки с датами лезут когда запускаю проект на apache-tomcat и начинаю через веб вбивать даты. Пока решил проблему очень тривиально из-за дедлайна.. Дальше посмотрим..)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2021, 15:27
Помогаю со студенческими работами здесь

LocalDate, вывести 100 следующих высокосных годов
Доброго времени суток! Не могу решить задачу. Задание звучит так: вывести 100 следующих высокосных года используя класс LocalDate. ...

Как безопасно можно переконвертировать объекты LocalDate и LocalDateTime в sql.Date?
Приведите пожалуйста пример с использованием timeZone и с пояснениями кода Главное поясните принцип такой конвертации ...

Че за ошибка? Parse error: parse error, unexpected T_VARIABLE in C:inetlocalhostwww estpearclasses.php on line 11
Подскажите в чем тут дело, такая ошибка Parse error: parse error, unexpected T_VARIABLE in C:inetlocalhostwww estpearclasses.php on line...

ImageString и ошибка Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in
Пишу такую строку imagestring($image,1,10,10,'mytext',&black); Выдаеться такая ошибка Parse error: parse error, unexpected...

Выскакивает ошибка Parse error: parse error, unexpected T_STRING
<?php /* Здесь мы проверяем существуют ли переменные, которые передала форма обратной связи. Если не существуют, то мы их создаем */ if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru