Java 格式化时间问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 08:51:12
private Date jointime;
我想给这个变量赋值 是一个日期 格式要年月日的 应该怎么弄
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd ");
String a2=sdf.format(new Date());
这个就不要发了 类型不匹配 速度 谢谢

你把sdf.format(new Date())赋给jointime当然是不可以的,因为 string和date如何匹配呢,date永远是“sat apr 23 23:23:23 cst 2000”这种格式,SimpleDateFormat 只是拿出其中部分来显示,一般做法是
再建个 private String jointimeStr;

public setJointmeStr(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd ");
if(this.getJointme()!=null){
jointimeStr=sdf.format(this.getJointme());
}
return jointimeStr;
}
在页面上拿jointimeStr显示;
所以
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd ");
String a2=sdf.format(new Date());
还是要发出来的~

明白楼主的意思了.

首先System.err.print(new Date())调用的是Date的toString方法,无论楼主如何修改日期的格式,都没办法改变Date的toString的执行结果...

因此无论什么样的Date打印出的都是
"EEE MMM dd HH:mm:ss zzz yyyy", Locale.US
这个格式的..

楼主需要一个日期,格式是年月日,那就新建一个Date对象,然后为Date赋值为指定的年月日就行了.最好用Calendar类,然后转为Date类型,Calendar提供了修改年月日的方法,Date的那些修改方法都是被弃用的,最好不要用<