Проблема в том, что java.util.Date
представляет «момент времени», а не время, как 18:00. (Момент времени в данном случае измеряется количеством миллисекунд с 1 января 1970 года 00:00:00 по Гринвичу, но в принципе это не имеет значения.)
Обычный способ (по крайней мере, так, как я всегда это делал) - сохранять точки во времени в базе данных, поэтому, если вы делаете что-то в 13:00, я вижу это, например, как. 3 часа дня, как в тот же момент времени в моем часовом поясе Таким образом, требование хранить «время» (ЧЧ: ММ) без сохранения «момента времени», то есть без корректировки на часовой пояс получателя, довольно необычно, по крайней мере, по моему опыту.
Я бы использовал тип данных DATETIME
, который вы используете, но вставьте и прочитайте значения как строки из Java, т. Е. С помощью метода setString
в PreparedStatement
и getString
в ResultSet
.