当前位置: 代码迷 >> Java相关 >> 关于得到当前时间的有关问题
  详细解决方案

关于得到当前时间的有关问题

热度:6439   发布时间:2013-02-25 21:51:46.0
关于得到当前时间的问题
我得到了当前的时间 

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 就不对了。 我新手……
  相关解决方案