powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Записать время в БД
56 сообщений из 56, показаны все 3 страниц
Записать время в БД
    #39745974
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся, как это часто бывает, с проблемой на ровном месте, а именно: передать дату/время строкой в сервлет и записать в базу.

База Pg, тип поля, хранящего время time without time zone, даты date

Пробовал делать через java.util.Date/Time и java.sql.Date/Time, но эклипс пишет, что java.util - устаревшая библиотека и не хочет нифига отрабатывать. Начал делать через LocalDateTime, преобразовав его в Timestamp, но чегой-то не катит


Код: java
1.
2.
3.
4.
5.
6.
7.
DateTimeFormatter dtfrm = DateTimeFormatter.ofPattern("yyyy-MM-dd"); //задаем формат
LocalDate sdt = LocalDate.parse(request.getParameter("vdt"),dtfrm); //парсим дату
LocalDateTime timesdt = LocalDateTime.of(sdt, LocalDateTime.now().toLocalTime()); //добавляем время
Timestamp gst = new Timestamp(timesdt); //не работает, пишет, что конструктор не определен

//передача в стейтмент
pst.setTimestamp(2,gdt);



Кто уже делал что-то подобное? нужен совет, как сделать, чтоб робало)
...
Рейтинг: 0 / 0
Записать время в БД
    #39745981
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с датой разобрался. всё оказалось просто, если думать:
Код: java
1.
2.
3.
4.
java.sql.Date gdt = java.sql.Date.valueOf(sdt);

//передаем в субд
pst.setDate(2,gdt);




со временем проблема осталась
...
Рейтинг: 0 / 0
Записать время в БД
    #39745990
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Странно передавать миллисекунды не с клиента или триггером а фальшивые.
База какая?
...
Рейтинг: 0 / 0
Записать время в БД
    #39745992
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,
Странно передавать миллисекунды не с клиента или триггером а фальшивые.
База какая?
да мне хоть какие. дальше сам, думаю, допру
авторБаза Pg
...
Рейтинг: 0 / 0
Записать время в БД
    #39745997
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,

setTimestamp(1, new Timestamp(new Date(). GetTime() + 12345)
...
Рейтинг: 0 / 0
Записать время в БД
    #39745998
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,

setTimestamp(1, new Timestamp(new Date(). GetTime() + 12345)
12345 - это что такое?
...
Рейтинг: 0 / 0
Записать время в БД
    #39746004
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Добавить))). Без плюсика текущее. Ты же химичишь там что то.
...
Рейтинг: 0 / 0
Записать время в БД
    #39746011
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Записать время в БД
    #39746022
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,
Добавить))). Без плюсика текущее. Ты же химичишь там что то.
та не. добавлять плюсовать текучку и что-то еще не надо. Из реквеста надо прочитать и в базу бухнуть

сделал так
Код: java
1.
Timestamp stm = new Timestamp(Localtime.parse(request.getParameter("vtm")).getHour());


но пишет всегда 6 часов утра
...
Рейтинг: 0 / 0
Записать время в БД
    #39746036
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,

Входные проверять надо.
Раздели на 3 строки и отладчик останови на строке.
...
Рейтинг: 0 / 0
Записать время в БД
    #39746047
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,

Входные проверять надо.
Раздели на 3 строки и отладчик останови на строке.
отправляется все норм. часы в миллисекунды пишутся
...
Рейтинг: 0 / 0
Записать время в БД
    #39746055
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отправляешь
Код: java
1.
11:00


а в базу пишется
Код: java
1.
06:00:00.011
...
Рейтинг: 0 / 0
Записать время в БД
    #39746084
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Все равно, разбивать на строки и смотреть.
...
Рейтинг: 0 / 0
Записать время в БД
    #39746086
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,

Убрать вообще getParameter(
...
Рейтинг: 0 / 0
Записать время в БД
    #39746395
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,

Убрать вообще getParameter(
как это убрать getParameter? а откудава тогда читать передаваемое в реквестре время?
...
Рейтинг: 0 / 0
Записать время в БД
    #39746400
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
что будет при Sysytem.print(stm.toString())?
...
Рейтинг: 0 / 0
Записать время в БД
    #39746406
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorcarPetro123Korcar,

Убрать вообще getParameter(
как это убрать getParameter? а откудава тогда читать передаваемое в реквестре время?
Слона едят по частям!
Отлаживаем запись константы строки в базу.
Как заработает, подставляем уже из параметра ТОЧНО ТАКУЮ СТРОКУ.
...
Рейтинг: 0 / 0
Записать время в БД
    #39746425
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcarпропущено...

как это убрать getParameter? а откудава тогда читать передаваемое в реквестре время?
Слона едят по частям!
Отлаживаем запись константы строки в базу.
Как заработает, подставляем уже из параметра ТОЧНО ТАКУЮ СТРОКУ.
да ладно. зачем кричишь? с передачей и чтением параметра рекваста проблем то особых нет. попробовал так
Код: java
1.
Timestamp stm = new Timestamp(LocalTime.parse("11:30").getMinute());


результат
06:00:00.03
то есть 30 минут записались в миллисекунды. предположу с вероятностью чуть более, чем 100%, если взять часы, то в миллисекунды они и запишутся
мне приходит в голову мысль, что из LocalTime надо как-то прочитать миллисекунды (ну не самому же часы и минуты переводить в эти злосчастные миллисекунды). Но как это сделать. Метода по миллисекундам у LocalTime нету
...
Рейтинг: 0 / 0
Записать время в БД
    #39746427
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяKorcar,
что будет при Sysytem.print(stm.toString())?
Код: java
1.
2.
Timestamp stm = new Timestamp(LocalTime.parse("11:30").getMinute());
System.out.println(stm.toString());


вывел в консоль
1970-01-01 06:00:00.03
что теперь с этим делать?
...
Рейтинг: 0 / 0
Записать время в БД
    #39746434
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcarчто теперь с этим делать?разбираться
...
Рейтинг: 0 / 0
Записать время в БД
    #39746435
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,

LocalTime.parse("11:30") хочет получить полную строку времени.
LocalTime.parse("11:30").getMinute() из полной строки времени возвращает минуты
...
Рейтинг: 0 / 0
Записать время в БД
    #39746436
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяKorcar,

LocalTime.parse("11:30") хочет получить полную строку времени.
LocalTime.parse("11:30").getMinute() из полной строки времени возвращает минуты
да! об этом я тоже догадался!)))
...
Рейтинг: 0 / 0
Записать время в БД
    #39746438
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Записать время в БД
    #39746448
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяKorcar,

https://urvanov.ru/2016/06/16/java-8-дата-и-время/
нужна конвертация в sql.timestamp, а этого там нет
...
Рейтинг: 0 / 0
Записать время в БД
    #39746464
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,

Код: plaintext
1.
timestamp - дата с временем.
Данный тип данных отличается от типа date наличием временной составляющей, которая позволяет хранить время с точностью до микросекунды.

https://jdbc.postgresql.org/documentation/head/8-date-time.html
http://qaru.site/questions/215403/what-is-the-most-recommended-way-to-store-time-in-postgresql-using-java
http://www.sql.ru/forum/1187891/jdbc-postgres-java-time-zoneddatetime
...
Рейтинг: 0 / 0
Записать время в БД
    #39746469
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcarда ладно. зачем кричишь? с передачей и чтением параметра рекваста проблем то особых нет. попробовал так
Код: java
1.
Timestamp stm = new Timestamp(LocalTime.parse("11:30").getMinute());

нужна полная строка дата, время.
Разве не очевидно?
...
Рейтинг: 0 / 0
Записать время в БД
    #39746537
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcarда ладно. зачем кричишь? с передачей и чтением параметра рекваста проблем то особых нет. попробовал так
Код: java
1.
Timestamp stm = new Timestamp(LocalTime.parse("11:30").getMinute());

нужна полная строка дата, время.
Разве не очевидно?
ну это ... пишется то только время в базу

в общем некогда долго мудрить. времени мало. сделал рабочий костыль:
Код: java
1.
2.
3.
4.
LocalTime stime = LocalTime.parse(request.getParameter("vtm"));
Timestamp stm = new Timestamp((stime.getHour()-6)*3600*1000+stime.getMinute()*60*1000);
...
pst.setTimestamp(3,stm);


можете начинать пинать
...
Рейтинг: 0 / 0
Записать время в БД
    #39746556
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
В постгри 6 типов поля по дате и времени.
Есть тип time где пишется только время.
Ниче не понял).
Удачи!
...
Рейтинг: 0 / 0
Записать время в БД
    #39746572
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,
В постгри 6 типов поля по дате и времени.
Есть тип time где пишется только время.
Ниче не понял).
Удачи!
вопрос был не в Pg, а в объектах java, где, как я уже начинаю понимать, одно и то же можно сделать тысячу и одним способами, но не всегда и не везде. в общем те еще сонеты
...
Рейтинг: 0 / 0
Записать время в БД
    #39746585
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Да. Способов полно. Ты прав.
Поэтому задачу бъем на три:
1.Получение и проверка формата
2.Форматирование под нужный напр. для БД и бизнес логика.
3.Записываем.
И это три отдельных несвязанных вопроса).
Так пишут корпоративный устойчивый железобетонный код.
...
Рейтинг: 0 / 0
Записать время в БД
    #39746588
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,
Да. Способов полно. Ты прав.
Поэтому задачу бъем на три:
1.Получение и проверка формата
2.Форматирование под нужный напр. для БД и бизнес логика.
3.Записываем.
И это три отдельных несвязанных вопроса).
Так пишут корпоративный устойчивый железобетонный код.
такие общие фразы и я могу накидать мульон)
ты давай ближе к конкретике)
...
Рейтинг: 0 / 0
Записать время в БД
    #39746591
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
ты получил чпсы-минуты
а какого дня, года, зоны ?
база откуда это знает?
...
Рейтинг: 0 / 0
Записать время в БД
    #39746598
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяKorcar,
ты получил чпсы-минуты
а какого дня, года, зоны ?
база откуда это знает?
нафиг ей это знать? с таким подходом тип time вообще нафиг не нужен
...
Рейтинг: 0 / 0
Записать время в БД
    #39746600
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorcarPetro123Korcar,
Да. Способов полно. Ты прав.
Поэтому задачу бъем на три:
1.Получение и проверка формата
2.Форматирование под нужный напр. для БД и бизнес логика.
3.Записываем.
И это три отдельных несвязанных вопроса).
Так пишут корпоративный устойчивый железобетонный код.
такие общие фразы и я могу накидать мульон)
ты давай ближе к конкретике)
У тебя времени нету.)))
Делай три шага как выше написал.
...
Рейтинг: 0 / 0
Записать время в БД
    #39746603
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcarпропущено...

такие общие фразы и я могу накидать мульон)
ты давай ближе к конкретике)
У тебя времени нету.)))
Делай три шага как выше написал.
не могу базу поправить. там уже куча данных. не комильфо выйдет
...
Рейтинг: 0 / 0
Записать время в БД
    #39746616
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcarне могу базу поправить.ну тогда оставляй раз работает. Если в бд костыль, то и клиент тюнить смысла нет.
...
Рейтинг: 0 / 0
Записать время в БД
    #39746635
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcarне могу базу поправить.ну тогда оставляй раз работает. Если в бд костыль, то и клиент тюнить смысла нет.
Коллега, ваши суждения не логичны. Ведь если в java есть два сходных типа, то данные из одного в другой как-то перенести можно стандартным способом, который умные дядьки придумали
...
Рейтинг: 0 / 0
Записать время в БД
    #39746675
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Это требуется?
Код: java
1.
2.
var s =   myConverter("13:56");
// s = "12.12.18:13.56.00");
...
Рейтинг: 0 / 0
Записать время в БД
    #39746684
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,
Это требуется?
Код: java
1.
2.
var s =   myConverter("13:56");
// s = "12.12.18:13.56.00");


myConverter - черный ящик, правильно понял?
...
Рейтинг: 0 / 0
Записать время в БД
    #39746688
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Метод требуется написать.
Так задачи ставятся. Без всяких getParameter.
...
Рейтинг: 0 / 0
Записать время в БД
    #39746787
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
6 - это твоя временная зона

что сохраняется если vtm =01:13
...
Рейтинг: 0 / 0
Записать время в БД
    #39747055
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,
Метод требуется написать.
Так задачи ставятся. Без всяких getParameter.
ну я так и понял. суть твоего поста: рисуем два круга один под другим, соединяем в овал, а далее дорисовываем сову
...
Рейтинг: 0 / 0
Записать время в БД
    #39747057
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяKorcar,
6 - это твоя временная зона

что сохраняется если vtm =01:13
такого не бывает. рабочий день в 8 часов начинается. лайфхак))
...
Рейтинг: 0 / 0
Записать время в БД
    #39747059
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcarтакого не бывает. рабочий день в 8 часов начинается. лайфхак))я не спрашиваю бывает/не бывает
вот так настроят на "не бывает" , а потом один раз "будет" ....
...
Рейтинг: 0 / 0
Записать время в БД
    #39747063
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorcarPetro123Korcar,
Метод требуется написать.
Так задачи ставятся. Без всяких getParameter.
ну я так и понял. суть твоего поста: рисуем два круга один под другим, соединяем в овал, а далее дорисовываем сову
)) нет. Это анализ, синтез.. И как в первом классе: "у Маши было 2 яблока..".
На третьей странице пойдут палочки для счета).
...
Рейтинг: 0 / 0
Записать время в БД
    #39747064
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Может он упростил. У нас тоже в постгри время без временной зоны.
...
Рейтинг: 0 / 0
Записать время в БД
    #39747075
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяKorcarтакого не бывает. рабочий день в 8 часов начинается. лайфхак))я не спрашиваю бывает/не бывает
вот так настроят на "не бывает" , а потом один раз "будет" ....
пользовательский интерфейс не позволит добавить время ранее 8 часов
...
Рейтинг: 0 / 0
Записать время в БД
    #39747076
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcarпропущено...

ну я так и понял. суть твоего поста: рисуем два круга один под другим, соединяем в овал, а далее дорисовываем сову
)) нет. Это анализ, синтез.. И как в первом классе: "у Маши было 2 яблока..".
На третьей странице пойдут палочки для счета).
в таком случае, предлагаю перейти к палочкам. 3-я страница близится, а имя придуманного метода я тоже могу запостить с пару тысяч
...
Рейтинг: 0 / 0
Записать время в БД
    #39747094
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
А где выше ты сказал - Да! ТЗ именно такое?
Молчишь)
...
Рейтинг: 0 / 0
Записать время в БД
    #39747097
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Я подумал ты покраснел от стыда и сразу решил задачку с мойКонвертер)
...
Рейтинг: 0 / 0
Записать время в БД
    #39747110
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,
А где выше ты сказал - Да! ТЗ именно такое?
Молчишь)
не могу так сказать, ибо мне не известно, что там кроется в myConverter. может быть там законченный ИИ прописан, а может быть всего лишь
Код: java
1.
2.
int a=1;
return a;
...
Рейтинг: 0 / 0
Записать время в БД
    #39747133
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Не прикидывайся. ТЗ у черного именно вход и выход. А не внутри.
...
Рейтинг: 0 / 0
Записать время в БД
    #39747236
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcar,
Не прикидывайся. ТЗ у черного именно вход и выход. А не внутри.
фишка в том, что сюда люди приходят, чтобы им показали, что в черном ящике, а не просто сказали, что да, это возможно)
...
Рейтинг: 0 / 0
Записать время в БД
    #39747261
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorcarPetro123Korcar,
Не прикидывайся. ТЗ у черного именно вход и выход. А не внутри.
фишка в том, что сюда люди приходят, чтобы им показали, что в черном ящике, а не просто сказали, что да, это возможно)ну ты же сказал что тебе лень и костыль заработал. Мне тоже.
Фишка в том что ТС работает больше отвечающих.
...
Рейтинг: 0 / 0
Записать время в БД
    #39747360
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcarпропущено...

фишка в том, что сюда люди приходят, чтобы им показали, что в черном ящике, а не просто сказали, что да, это возможно)ну ты же сказал что тебе лень и костыль заработал. Мне тоже.
Фишка в том что ТС работает больше отвечающих.
вас пока дождешься)) в основном боковыми вопросами валите

зы: костыль рабочий - так лучше, исключает двусмысленные трактовки)
...
Рейтинг: 0 / 0
Записать время в БД
    #39747366
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar,
Ну и ладно. Закрываем тему.
А альтруист какой сам отпишет тебе решение.
...
Рейтинг: 0 / 0
56 сообщений из 56, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Записать время в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]