mysql数据库,存储日期字段使用timestamp类型的时候,取出来的数据最后面会多一个.0 。
看似是YYYY-MM-DD HH:MM:SS,但其实应该是yyyy-MM-dd hh:mm:ss.fff,后面多了一个毫秒。
取出来的时候只需要再格式化一下就行了一下:

对数据库取出来的timestamp类型的数据操作:

Timestamp timestamp = rs.getTimestamp("create_time");//数据默认是:2016-11-30 11:31:28.0  
Date date = null;
String result = "";
if (timestamp != null){
    date = new java.util.Date(timestamp.getTime());
    result=sdf.format(date);
}

用上面的代码格式化取出的日期数据之后,下面用三种方法来打印一下结果。

System.out.println(rs.getString("create_time")+"\t"+rs.getTimestamp("create_time")+"\t"+result);

打印的结果:(只有最后这个经过格式化的才使我们想要的数据)
2016-11-30 11:31:28.0    2016-11-30 11:31:28.0    2016-11-30 11:31:28

对String字符串进行操作:

		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String a = "2016-12-27 16:03:56.0";
		
		Date date = null;
		try {
			
			date = sdf.parse(a);
			
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
		System.out.println(sdf.format(date));

运行结果:

2016-12-27 16:03:56

 

发表评论