Date時間タイプをmysqlデータベースに保存してから取り出す
1745 ワード
質問:javaのDateタイプがデータベースdatetimeタイプに格納されているときに不一致が発生しました
解決策:データベースへの格納時に時間タイプを文字列への変換格納取り出し時にDateタイプへの変換
コード実装
実行結果:
取得した現在時刻は、2019-08-06 05:50:56
データベースから取得した時間は、2019-08-06 03:02:58です.
変換後に取得した時間はTue Aug 06 03:02:58 CST 2019
解決策:データベースへの格納時に時間タイプを文字列への変換格納取り出し時にDateタイプへの変換
コード実装
public class TimeTest {
public static void main(String[] args) throws ParseException{
//
getNowTime();
getDBTime();
}
//
public static void getNowTime(){
//
Date date = new Date();
// datatime yyyy-MM-dd hh:mm:ss
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//
String str = df.format(date);
System.out.println(" "+str);
saveTime(str);
}
//
public static void saveTime(String date){
//
String sql_insert = "insert into timeTest values(0,'"+date+"')";
//
DataCenter.executeChange(sql_insert);
}
//
public static void getDBTime() throws ParseException{
String sql_check = "select time from timeTest where num = 6";
//
ResultSet rs = DataCenter.executeInquery(sql_check);
try {
while(rs.next()){
String str = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(rs.getTimestamp("time"));
System.out.println(" "+str);
System.out.println("=====================");
// Date
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = sd.parse(str);
System.out.println(" "+date);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
実行結果:
取得した現在時刻は、2019-08-06 05:50:56
データベースから取得した時間は、2019-08-06 03:02:58です.
変換後に取得した時間はTue Aug 06 03:02:58 CST 2019