まずjavaの日付にはDate型があるんですが、これはミリ秒までの精度しかなく、データベースのTimestampはナノ秒まであるのでDateでは表現できません。
Timestamp型はそれを表すために、Dateにナノ秒を加えただけの薄いラッパーみたいなもので、JDBCドライバのResultSet等がDBのTimestampを返す際に使用します。TimestampはJava1.1から存在します。
(java.sqlパッケージの持ち物なので、データベースの為に存在するものと考えて下さい。)
java
1 ResultSet rs = stmt.executeQuery("select * from hoge");
2 while (rs.next()) {
3 Timestamp tm = rs.getTimestamp("col_tm");
4 }
LocalDateTimeは、Java8以降に出来た新しい日付APIで、DateクラスはCalendarクラスとセットで使う事が多いですが、LocalDateTimeはDateとCalendarを合わせたような便利クラスで、精度もナノ秒まであります。
普段使いにおいては、java8以降の環境であれば基本的にLocalDateTime使っておけばよく、JDBCドライバで直接DBとやり取りする処理でTimestampが出てきた場合も、TimestampからLocalDateTimeに変換して扱えばよいと思います。TimestampをDB層以外にまで持ちまわるのは、DBに関係ないクラスにまで余計な依存を増やしてしまうので、責務の分離的な観点で良い設計じゃない、という考えもあると思います。
以下のように変換できます。
java
1LocalDateTime ldt = tm.toLocalDateTime();
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。