日期:2014-05-20  浏览次数:20834 次

关于得到当前时间的问题
我得到了当前的时间 

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 就不对了。 我新手……