Calendar cal = Calendar.getInstance(); Date date = cal.getTime(); SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd"); String str = sf.format(date); //这里我想返回的结果为Date对象,该如何做?
先谢谢大家我是为了比较,比如下面,格式化的效果就出来了 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);
Date不能被格式化。 只有字符串能够格式化。LZ你的想法放弃吧。
Date.compareTo :如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。不格式化它是-1
不知道这个可以吗
用 Date tdate = date; 不更好么?
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);
只有字符串能够格式化。LZ你的想法放弃吧。
肯定就是这个结果啊
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" 这个字符串
得到的Date对象也只有你提供的分量,你的例子中20100623
只有年月日,所以得到的Date对象的只有年月日,其他的默认是0
也就是说这个得到的Date对象是2010年6月23日0时0分0秒0毫秒。
而你用Date date1 = cal.getTime();
这里得到的date1是含有时分秒的,所以这个对象要大于上面那个parse来的