有两个日期时间,我想知道如何判断这两个值的差值超过5天如何判断
比如:
String datetime1 = 2006-10-31 09:37:39;
String datetime2 = 2006-10-26 10:20:49;
是否可以将他们转换成字符串来比较呢?
20061031093739有没有好的实现思路,谢谢

解决方案 »

  1.   

    转换成日期型就很好比较,比如     public static double getTimeDiff(java.sql.Date toDate, java.sql.Date fromDate, int deltaType)
            throws IncorrectParameterException {        double diff = 0;
            switch (deltaType) {
            case Constants.DATA_DELTA_TYPE_DAY:
                diff = (toDate.getTime() - fromDate.getTime()) / (1000L * 3600 * 24); //day
                break;
            case Constants.DATA_DELTA_TYPE_WEEK:
                diff = (toDate.getTime() - fromDate.getTime()) / (1000L * 3600 * 24 * 7); //month
                break;
            case Constants.DATA_DELTA_TYPE_MONTH:
                diff = (toDate.getTime() - fromDate.getTime()) / (1000L * 3600 * 24 * 30); //month
                break;
            case Constants.DATA_DELTA_TYPE_YEAR:
                diff = (toDate.getTime() - fromDate.getTime()) / (1000L * 3600 * 24 * 365); //year
                break;
            default:
                throw new IncorrectParameterException("incorrect parameter ");
            }
            return diff;
        }
      

  2.   

    我的实现方式是这样的
    StringUtil.formatInputStrToChar14这个函数是将日期时间转换为14位字符串
    比如"2006-10-31 09:37:39"通过上面的函数可转换为"20061031093739"
    double dbl1 = Double.parseDouble(StringUtil.formatInputStrToChar14(datetime1));
    double dbl2 = Double.parseDouble(StringUtil.formatInputStrToChar14(datetime2));
    double timeStandardDbl = 5*24*60*60;//把5天转换为秒
    //计算差值
    double timeSpace = dbl1-dbl2;
    if(timeSpace >timeStandardDbl ){
    //标识超时
    }
      

  3.   

    两个都转换成Calendar形的
    int days = calLocal.get(Calendar.DAY_OF_YEAR) - calUse.get(Calendar.DAY_OF_YEAR);
      

  4.   

    Calendar ca = Calendar.getInstance();
    SimpleDateFormat fa = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
    System.out.println("修改前:"+fa.format(ca.getTime()));
    ca.add(ca.DAY_OF_YEAR,5);
    System.out.println("修改后:"+fa.format(ca.getTime()));
      

  5.   

    小猪的狗熊的方法是正解
    不要用转化毫秒的方法来做,如果说每天都是24小时,那要闰年干嘛啊? 
    我不大懂历法,但我觉得不能用毫秒等类似的方法,还是用Calendar 好了