想new 出一个纯日期不带时间的,如2008-12-12的Date类对象还有纯时间的,不带日期的,如11:25:39的Date类对象,搞了很久,就是搞不出用simpleDateFormat:SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(formatTime.parse("HH:mm:ss"));它总是默认给我加上1970的日期:Thu Jan 01 23:08:25 CST 1970SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd"); //获取日期
System.out.println(formatDate.parse("2009-11-23"));它总是默认默认给我 加上00:00:00,且格式不对Mon Nov 23 00:00:00 CST 2009我还试过了 GregorianCalendar sDate = new GregorianCalendar(2009, Calendar.MARCH, 19);
sDate.getTime(),也不行,又加了时间
我的目的是想创建个纯日期,纯时间的Date类对象,使用起来的时候跟完整的Date类(如2009-12-11 12:25:36)一样,当我同类做比较的时候,就可以忽略时间或者日期

解决方案 »

  1.   

    呵呵,原来这个问题困扰我好久好久啊。import java.util.Calendar;
    public final class Time{
    public final static void getTime(){//格式化输出当前系统时间
    Calendar time=Calendar.getInstance();
    int year=time.get(time.YEAR);
    int month=time.get(time.MONTH);
    int day=time.get(time.DAY_OF_MONTH);
    int hour=time.get(time.HOUR_OF_DAY);
    int minute=time.get(time.MINUTE);
    int second=time.get(time.SECOND);
    int millisecond=time.get(time.MILLISECOND);//毫秒
    int week=time.get(time.DAY_OF_WEEK);
    String [] chineseWeek={"天","一","二","三","四","五","六"};
    System.out.println(year+"-"+month+"-"+day+"  "+hour+":"+minute+":"+second+"  星期"+chineseWeek[week-1]+"  "+millisecond+"毫秒");
    //System.out.println(time.toString());//查看Calendar日历类所有时间属性
    }
    }上述代码可以直接new Time获取时间,我一般是做成方法的。public String getTime(){//格式化输出当前系统时间
    Calendar time=Calendar.getInstance();
    int year=time.get(time.YEAR);
    int month=time.get(time.MONTH);
    int day=time.get(time.DAY_OF_MONTH);
    int hour=time.get(time.HOUR_OF_DAY);
    int minute=time.get(time.MINUTE);
    int second=time.get(time.SECOND);
    int millisecond=time.get(time.MILLISECOND);//毫秒
    int week=time.get(time.DAY_OF_WEEK);
    String [] chineseWeek={"天","一","二","三","四","五","六"};
    return ...将上述拼接吧,想要哪个就接哪个。
    }
      

  2.   

    汗,LZ不好意思啊。我的浏览器不知道怎么回事贴代码格式不对啊。麻烦LZ自己格式化代码吧。
      

  3.   

    new java.sql.Date(new java.util.Date().getTime());
    只是当前的日期;
    new java.sql.Time(new java.util.Date().getTime());
    只是当前的时间如果不是当前的时间或日期,可以修改里面的参数,得到特定的日期或时间
      

  4.   

    用data类或caliden【名字写错的自己去查一下】类把。两个都可以。
      

  5.   

    Date d = new Date();
    DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
    DateFormat df2 = new SimpleDateFormat("hh:mm:ss");
     String str1 = df1.format(d);
     System.out.println(str1);
     String str2 = df2.format(d);
    System.out.println(str2);
      

  6.   

       //这下好了,LZ把代码重新放上来吧。我知道楼主遇到我当初的问题了。
       
        import java.util.Calendar;
    public final class Time{
    public final static void getTime(){//格式化输出当前系统时间
    Calendar time=Calendar.getInstance();
    int year=time.get(time.YEAR);
    int month=time.get(time.MONTH);
    int day=time.get(time.DAY_OF_MONTH);
    int hour=time.get(time.HOUR_OF_DAY);
    int minute=time.get(time.MINUTE);
    int second=time.get(time.SECOND);
    int millisecond=time.get(time.MILLISECOND);//毫秒
    int week=time.get(time.DAY_OF_WEEK);
    String [] chineseWeek={"天","一","二","三","四","五","六"};
    System.out.println(year+"-"+month+"-"+day+"  "+hour+":"+minute+":"+second+"  星     期"+chineseWeek[week-1]+"  "+millisecond+"毫秒");
    //System.out.println(time.toString());//查看Calendar日历类所有时间属性
    }
    }
      

  7.   

    不可能,Date里面保存的就是包含时分秒的。 就算你弄成00:00:00 也一样。
      

  8.   

    提醒一句:
    你到底是用Date,还是String ? 你先搞清楚再说!
    1 如果是Date,那你就使用其年月日部分就行了,不管时间不就好了
    2 如果是String, 那么你在转换时,把时分秒去掉就好了。别把2个事情混成一个。