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