public static void main(String[] args) {
  // TODO Auto-generated method stub
        String DateStr1 = "2011-10-1 10:20:16";  
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");  
        Date dateTime1;
        String dateTime2;
        try {
            dateTime1 = dateFormat.parse(DateStr1);
            dateTime2 = dateFormat.format(dateTime1);   //format方法进行格式化
             System.out.println("dateTime1=**************"+dateTime1);  
             System.out.println("dateTime2=**************"+dateTime2);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  

}

}

解决方案 »

  1.   

                        //实例化data对象获取时间
    Date date=new Date();
    //自定义字符串类型格式
    String formate="yyyy-MM-dd HH:mm:ss";
    //实例化sdf对象
    SimpleDateFormat sdf=new SimpleDateFormat(formate);
    //转化为指定格式的字符串
    String current=sdf.format(date);
      

  2.   

    你在format  下就可以了。
      

  3.   

    楼上的没理解我的意思,我需要返回形如“yyyy-MM-dd”的Date数据,而不是字符串形式。
      

  4.   

    返回Date型数据后,我要对Date型数据进行对比,所以不想返回字符串形式
      

  5.   

    楼主没错啊,你是把字符串解析成日期类型,然后就直接输出日期对象了,直接输出的日期对象本来就是这个格式的,除非你用System.out.println(dateFormat.format(dateTime1));
      

  6.   

    util下的date就是这样的,可以用sql的Date,但是sql下的Date只适用yyyy-MM-dd这种格式的字符串日期。java.sql.Date.valueOf(string s)
      

  7.   


    相比你对Date的理解存在偏差,date,就是一个时间对象,储存了年月日时分秒,其内容是一定的,只是所谓的展示的格式有所其别。如果只是对date类型数据比对,则重写其equal()函数即可,如果要以特定的字符展示,通过simleDateFormat类如上即可解决。
    如果你想Date d = new Date ();
                   System.out.println(d);//展示如“yyyy-MM-dd”格式而已,这是Date的toString()决定的。
      

  8.   

    我知道楼主的意思了,楼主是不是想直接打印Date类型的变量格式为yyyy-MM-dd?如果是的话,只能重写toString()了
      

  9.   

    SimpleDateFormat fmt= new SimpleDateFormat("yyyy-MM-dd");//指定时间的格式
    String date1 = "2011-10-1 10:20:16";
    Date outDate = fmt.parse(date1);//将字符串格式化成时间,返回结果是Date类型的
    String date2 = fmt.format(outDate);//将时间解析成指定格式的字符串,返回结果是字符串
      

  10.   

    得到的Date格式输出就是这样的,你在转化一下就能得到自己想要的了