Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
String str = sf.format(date);   //这里我想返回的结果为Date对象,该如何做?

解决方案 »

  1.   

    Date tdate = sf.parse(sf.format(date));
    不知道这个可以吗
      

  2.   

    确实有这个用法,为什么lz不直接new Date()
      

  3.   

    parse format两个方法好好看看API
      

  4.   


    用 Date tdate = date; 不更好么?
      

  5.   

    先谢谢大家我是为了比较,比如下面,格式化的效果就出来了 SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
    Calendar cal = Calendar.getInstance();

    Date date1 = cal.getTime();


    Date date = null ;
    Date date3 = null;
    try {
    date = sf.parse("20100623");
    date3 = sf.parse(sf.format(date));
    } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    int num = date.compareTo(date1);
    System.out.println(num);
    num = date.compareTo(date3);
    System.out.println(num);
      

  6.   

    Date不能被格式化。
    只有字符串能够格式化。LZ你的想法放弃吧。
      

  7.   

    Date.compareTo :如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。不格式化它是-1
      

  8.   

    你在干什么?
    肯定就是这个结果啊
     Date date1 = cal.getTime(); 上面的代码获取的是当前时间,Date 出了包含 yyyy,MM,dd 信息外,还包括 HH,mm,ss,ms 这些信息,且 如果你是现在通过 cal.getTime(); 获取的 Date 。那么 date1 中的 HH,mm,ss,ms 是不为 0 的。
    而你通过:date = sf.parse("20100623");获得的 date ,其中 HH,mm,ss,ms 肯定是 0 。
    而 date3 = sf.parse(sf.format(date)); 和 date = sf.parse("20100623"); 是完全一样的啊,sf.format(date) 的结果就是 "20100623" 这个字符串
      

  9.   

    你用parse方法的话,他只会根据你提供的日期分量parse
    得到的Date对象也只有你提供的分量,你的例子中20100623
    只有年月日,所以得到的Date对象的只有年月日,其他的默认是0
    也就是说这个得到的Date对象是2010年6月23日0时0分0秒0毫秒。
    而你用Date date1 = cal.getTime();
    这里得到的date1是含有时分秒的,所以这个对象要大于上面那个parse来的
      

  10.   

    SimpleDateFormat 是用来格式化时间,表示用的。