Основная проблема заключается в том, что местное время представляет собой конкретное время в течение дня:
например. 7:30 pm
Не 7:30 вечера сегодня или вчера или семнадцать недель с воскресенья, просто ... 7:30 вечера.
Принимая во внимание, что java.sql.Time представляет определенное время в определенный день .
Внутренне они хранятся в виде long , который представляет собой количество миллисекунд до или после определенной даты (IIRC 1 января 1970 г.).
Таким образом, чтобы преобразовать LocalTime в java.sql.Time, вы должны указать конкретный день, к которому будет применяться это время.
Посмотрите на LocalTime.atDate (LocalDate), который возвращает LocalDateTime.
Кажется, нет простого способа извлечения миллисекунд или нетто наносекунд (с 01.01.1970 00:00:00)
Возможно, попробуйте .toEpochSecond (требуется указать часовой пояс), затем умножьте его на 1000 или 1000000 и запишите его в БД, а затем прочитайте его обратно (чтобы увидеть, работает ли он).
С другой стороны:
Вы продолжаете говорить, что вам не нужна дата - я понимаю, но поскольку в базе данных этого нет, вы можете попробовать сохранить localTime.toNanoOfDay.
Он будет интерпретировать это как время дня 1 января 1970 года.