powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Записать время в БД
25 сообщений из 56, страница 1 из 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
25 сообщений из 56, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Записать время в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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