格式化Date

byeceg 2010-06-23 12:04:36

Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
String str = sf.format(date); //这里我想返回的结果为Date对象,该如何做?
...全文
159 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
byeceg 2011-07-12
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 qwerty123501029 的回复:]
可以个鸟!!
[/Quote]
都一年了。你还顶。有什么问题?
qwerty123501029 2011-07-05
  • 打赏
  • 举报
回复
可以个鸟!!
sharpfire 2010-06-24
  • 打赏
  • 举报
回复
SimpleDateFormat 是用来格式化时间,表示用的。
chuchuzinnia 2010-06-23
  • 打赏
  • 举报
回复
Date tdate = sf.parse(sf.format(date));
不知道这个可以吗
qusic 2010-06-23
  • 打赏
  • 举报
回复
你用parse方法的话,他只会根据你提供的日期分量parse
得到的Date对象也只有你提供的分量,你的例子中20100623
只有年月日,所以得到的Date对象的只有年月日,其他的默认是0
也就是说这个得到的Date对象是2010年6月23日0时0分0秒0毫秒。
而你用Date date1 = cal.getTime();
这里得到的date1是含有时分秒的,所以这个对象要大于上面那个parse来的



wakeUpDoNottLazy 2010-06-23
  • 打赏
  • 举报
回复
你在干什么?

[Quote=引用 7 楼 byeceg 的回复:]
第一个是-1,第二个是0
[/Quote]

肯定就是这个结果啊


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" 这个字符串
blueskyclub 2010-06-23
  • 打赏
  • 举报
回复
拿分走人
  • 打赏
  • 举报
回复
研究效率,还是什么?
byeceg 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 closewbq 的回复:]
Date不能被格式化。
只有字符串能够格式化。LZ你的想法放弃吧。
[/Quote]
Date.compareTo :如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。

不格式化它是-1
closewbq 2010-06-23
  • 打赏
  • 举报
回复
Date不能被格式化。
只有字符串能够格式化。LZ你的想法放弃吧。
byeceg 2010-06-23
  • 打赏
  • 举报
回复
第一个是-1,第二个是0
byeceg 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bao110908 的回复:]
引用 1 楼 chuchuzinnia 的回复:

Date tdate = sf.parse(sf.format(date));
不知道这个可以吗
用 Date tdate = date; 不更好么?
[/Quote]
先谢谢大家

我是为了比较,比如下面,格式化的效果就出来了

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);
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chuchuzinnia 的回复:]

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



用 Date tdate = date; 不更好么?
dr_lou 2010-06-23
  • 打赏
  • 举报
回复
parse format两个方法好好看看API
hoojo 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chuchuzinnia 的回复:]
Date tdate = sf.parse(sf.format(date));
不知道这个可以吗
[/Quote]
确实有这个用法,为什么lz不直接new Date()
黎某人 2010-06-23
  • 打赏
  • 举报
回复
楼上正解

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧