Лучший способ использовать Java 8 раз API:
LocalDateTime ldt = timeStamp.toLocalDateTime();
Timestamp ts = Timestamp.valueOf(dateTime);
Для использования с JPA положить в вашей модели (https://weblogs.java.net/blog/montanajava/archive/2014/06/17/using-java-8-datetime-classes-jpa):
@Converter(autoApply = true)
public class LocalDateTimeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime ldt) {
return Timestamp.valueOf(ldt);
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp ts) {
return ts.toLocalDateTime();
}
}
Так что теперь это относительное время, не зависящее от времени. Кроме того, это легко делать:
LocalDate ld = ldt.toLocalDate();
LocalTime lt = ldt.toLocalTime();
Форматирование:
DateTimeFormatter DATE_TME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")
String str = ldt.format(DATE_TME_FORMATTER);
ldt = LocalDateTime.parse(str, DATE_TME_FORMATTER);
Вы используете рамки ORM? Обычно вы явно не конвертируете в тип 'java.sql', но пусть это сделает каркас для вас. – Zutty