我用SimpleDateFormat parse("2005-09-15")出一个日期curDate后,用DateFormat的format来format它,但是format后的结果日期有问题,代码如下,
import java.util.*;
import java.text.*; public class SysCurDate
{
public  static void main(String args[])
{

Date curDate;
SimpleDateFormat  sdf=new SimpleDateFormat("yyyy-mm-dd");
try{
curDate=sdf.parse("2005-09-15");
System.out.println(sdf.format(curDate));//此句显示的是2005-9-15
DateFormat df=DateFormat.getDateInstance(DateFormat.FULL);
System.out.println(df.format(curDate));//但是此句显示的则是2005-1-15
}
catch(ParseException e)
{
System.exit(1);
}
}
}
输出:
2005-09-15
2005年1月15日 星期六两个日期本来应该一样,但是月份老是不对,不管怎么该日期,输出的都是1月
请各位帮我看看,怎么同一个Date,两种格式化出来的结果会有这么大的差别啊?

解决方案 »

  1.   

    new SimpleDateFormat("yyyy-mm-dd");改成new SimpleDateFormat("yyyy-MM-dd");即可
      

  2.   

    你的格式化串有问题,不是yyyy-mm-dd,改成yyyy-MM-dd。因为m是定义分钟数的。
      

  3.   

    package sunscjp;import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;/**
     * DateTest
     * @author zeyuphoenix
     */
    public class DateTest {
    /**
     * @param args String 
     */
    public static void main(String args[]){
    //Date
    Date curDate;
    SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
    try{
    //SimpleDateFormat
    curDate=simpleDateFormat.parse("2005-09-15");
    System.out.println(simpleDateFormat.format(curDate));
    //DateFormat
    DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.FULL);
    System.out.println(dateFormat.format(curDate));
    }
    catch(ParseException e)
    {
    System.exit(1);
    }
    }
    }这样就可以了,你的FORM格式错误!