当前位置: 代码迷 >> SQL >> java.util.date ,java.sql.date跟java.sql.Timestamp
  详细解决方案

java.util.date ,java.sql.date跟java.sql.Timestamp

热度:216   发布时间:2016-05-05 12:45:13.0
java.util.date ,java.sql.date和java.sql.Timestamp
java.util.date是java.sql.date和java.sql.Timestamp的父类.

java.util.date是用于一般环境对于时间的读和写。

java.sql.date和java.sql.Timestamp是用在对数据库时间格式的存储和读取时用到的。
java.util.date的用法:
java.util.Date date = new java.util.Date();

可以用java.text.SimpleDateFormat 进行格式化显示:
 SimpleDateFormat dateFormat=new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");    String Fromatdate=dateFormat.format(date);

当需要对数据库时间操作时,需要转换,反过来一样:
java.sql.Date date=new java.sql.Date();java.util.Date d=new java.util.Date(date.getTime());

因为用java.sql.date在数据库时间操作上存在数据丢失的问题,所以在数据库时间建模和操纵时习惯用java.sql.Timestamp,与数据库中DateTime对应。

java.sql.Date 只存储日期数据不存储时间数据

// 会丢失时间数据
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));


//可以这样来处理
preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime()));


//想要得到完整的数据,包括日期和时间,可以这样
java.util.Date d = resultSet.getTimestamp(1);

// 这样处理更合适一些,可以避免一些潜在Timestamp 问题
java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());




java.sql.Date is not a real date:

http://www.thunderguy.com/semicolon/2003/08/14/java-sql-date-is-not-a-real-date/

  相关解决方案