关于得到当前时间的问题
我得到了当前的时间
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);
}
------解决方案-------------------- 探讨 是没问题。 String nowTime=""; Date dt=new Date(); nowTime=sdf.format(dt); 我这个得到的nowTime在后面的这个式子里 int num=Math.abs((int) ((d.getTime() - d1.getTime()) / (24 * 3600 * 1000))); 把d1换成 nowTime 就不对了。 我新手……