java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。
java.sql.Date是为了配合SQL DATE而设置的数据类型。“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清 零。格式相似:YYYY-MM-DD。当咱们调用ResultSet的getDate()方法来得到返回值时,java程序会参照"规范"的 java.sql.Date来格式化数据库中的数值。所以,若是数据库中存在的非规范化部分的信息将会被劫取。
若是咱们把一个java.sql.Date值经过PrepareStatement的setDate方法存入数据库时,java程序会对传入的 java.sql.Date规范化,非规范化的部分将会被劫取。然而,咱们java.sql.Date通常由java.util.Date转换过来, 如:java.sql.Date sqlDate=new java.sql.Date(new java.util.Date().getTime()).java
java.util.Date是在除了SQL语句的状况下面使用的。
java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分
它们都有getTime方法返回毫秒数,天然就能够直接构建。 java.util.Date 是 java.sql.Date 的父类,前者是经常使用的表示时间的类,咱们一般格式化或者获得当前时间都是用他,后者以后在读写数据库的时候用他显然,这样转换过来的java.sql.Date每每不是一个规范的java.sql.Date.要保存java.util.Date的精确值,
咱们须要利用java.sql.Timestamp.
Calendar
Calendar calendar=Calendar.getInstance();
//得到当前时间,声明时间变量
int year=calendar.get(Calendar.YEAR);
//获得年
int month=calendar.get(Calendar.MONTH);
//获得月,可是,月份要加上1
month=month+1;
int date=calendar.get(Calendar.DATE);
//得到日期
String today=""+year+"-"+month+"-"+date+"";sql