我得到了当前的时间
String nowTime="";
Date dt=new Date();
nowTime=sdf.format(dt);
输出是这样的
2011-08-18 16:56:08
然后我在前面我得到的时间是输入后然后是这样转换的
String start="2011-08-07 13:24:42";
String end="2011-09-25 13:24:42";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(start);
Calendar cl = Calendar.getInstance();
cl.setTime(d);
int dayOfMonth = cl.getActualMaximum(Calendar.DAY_OF_MONTH);//月的天数
Date d1=sdf.parse(end);
我得到这里两天的时间间距是几天
int num=Math.abs((int) ((d.getTime() - d1.getTime()) / (24 * 3600 * 1000)));
可是我上面得到当前的时间的类型貌似跟这个不一样。刚接触这个。不太清楚具体怎么转换
希望大家指点下。我想用end 的那个时间减去当前时间。
------解决方案--------------------------------------------------------
long c = d.getTime();
用c再做差
------解决方案--------------------------------------------------------
无论Calendar还是Date类都没有直接计算间隔天数的API,可以用下面的代码计算,思路是把两个时间都设置到当天凌成0点,然后计算间隔的毫秒数再除以每天毫秒数
- Java code
public static Long getDaysBetween(Date startDate, Date endDate) { Calendar fromCalendar = Calendar.getInstance(); fromCalendar.setTime(startDate); fromCalendar.set(Calendar.HOUR_OF_DAY, 0); fromCalendar.set(Calendar.MINUTE, 0); fromCalendar.set(Calendar.SECOND, 0); fromCalendar.set(Calendar.MILLISECOND, 0); Calendar toCalendar = Calendar.getInstance(); toCalendar.setTime(endDate); toCalendar.set(Calendar.HOUR_OF_DAY, 0); toCalendar.set(Calendar.MINUTE, 0); toCalendar.set(Calendar.SECOND, 0); toCalendar.set(Calendar.MILLISECOND, 0); return (toCalendar.getTime().getTime() - fromCalendar.getTime() .getTime()) / (1000 * 60 * 60 * 24); }
------解决方案--------------------------------------------------------