将Date时间类型存到mysql数据库再取出

问题
java的Date类型存储到数据库datetime类型时存在不匹配问题

解决思路
存入数据库时将时间类型转换为字符串存入
取出时转换为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

你可能感兴趣的:(新思路)