急问:如何将java.util.Date转换成java.sql.Date,来算出两个日期相差天数? (date1.getTime() - date2.getTime()) / (3600*24*1000) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java.sql.Date从java.util.Date继承下来,你可以强制转换java.sql.Date dt1;java.util.Date dt2 =(java.util.Date) dt1;然后进行计算 java.sql.Date 是从 java.util.Date 继承的,所以可以使用 java.util.Date 的方法。但是好像没有日期加减的方法。你可以使用 java.util.Calendar 来进行计算 因为java.sql.Date是继承java.util.Date的,所以你可以把java.sql.Date当作java.util.Date来使用的。你可以将两者的getTime()相减得到的是两者向差的毫秒数,除以86400000就可以得到天数了。 private final static GregorianCalendar c1 = new GregorianCalendar(); private final static GregorianCalendar c2 = new GregorianCalendar(); public static int getDayGap(Date date1,Date date2) { c1.setTime(date1); c2.setTime(date2); int year1 = c1.get(Calendar.YEAR); int year2 = c2.get(Calendar.YEAR); int yearday = 0; for(int i = Math.min(year1,year2); i < Math.max(year1,year2); i ++) { yearday += c1.isLeapYear(i) ? 366 : 365; } yearday *= date1.compareTo(date2); return yearday + c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR) ; } 同意楼上的,java.sql.Date extends java.util.Date ,所以可以强制类型转换! util.Date --> sql.Date转换按楼上的所讲强制转换不行问题中需要的是util.Date to sql.Date,而强制转换只能是子类 to 父类,即 sql.Date to util.Date,所以不行可以通过以下转换比如timeDate为util.Date类型,则转换如下:java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());至于计算天数,可以不用以上转换都行,因为全部转成long可以相减处理楼上的(date1.getTime() - date2.getTime()) / (3600*24*1000)就可以 如何比较两个百分数的大小 想用框架写个小程序,怎么就这么难! 如何实现java类方法的动态调用? 使用 PrepareStatement 连接 mysql 出现 NullPointerException 的奇怪问题。 怎样实现在把一个窗口文本框的值付给另一个窗口的文本框? 我现在有一个数组加一个0 jbuilder中如何执行一个简单程序 刚转到java,问一个c->java的问题 xiewei请进领分! 求助 一个socket的致命问题,请大家看看!! 高分:谁能给一些用JAVA开发WEBMAIL的资料和方法?
java.sql.Date dt1;
java.util.Date dt2 =(java.util.Date) dt1;
然后进行计算
你可以使用 java.util.Calendar 来进行计算
private final static GregorianCalendar c2 = new GregorianCalendar();
public static int getDayGap(Date date1,Date date2) {
c1.setTime(date1);
c2.setTime(date2);
int year1 = c1.get(Calendar.YEAR);
int year2 = c2.get(Calendar.YEAR);
int yearday = 0;
for(int i = Math.min(year1,year2); i < Math.max(year1,year2); i ++) {
yearday += c1.isLeapYear(i) ? 366 : 365;
}
yearday *= date1.compareTo(date2);
return yearday + c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR) ;
}
问题中需要的是util.Date to sql.Date,而强制转换只能是子类 to 父类,即 sql.Date to util.Date,所以不行
可以通过以下转换
比如timeDate为util.Date类型,则转换如下:
java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());
至于计算天数,可以不用以上转换都行,因为全部转成long可以相减处理
楼上的
(date1.getTime() - date2.getTime()) / (3600*24*1000)
就可以