为什么用一个字符串如'2010-04-05'转换为java中的util.date时,会转换出错呢?
我用‘2010-04-05’转换时,输出的util.date为:Tue Jan 05 00:00:00 CST 2010,怎么变成了1月5号?同样我用Calendar构造一个日历时,然后将其转化为util.date时,会转换出错呢?
我用cl.set(2010, 04, 05),然后Date d1 = cl.getTime();输出d1时。怎么会变成5月5号呢?import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;public class DateManage {
public static void main(String[] args){
try {
Date utilDate = new SimpleDateFormat("yyyy-MM-DD").parse("2010-04-05");
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println(utilDate);
System.out.println(sqlDate);
} catch (ParseException e) {
e.printStackTrace();
}

Calendar cl = Calendar.getInstance();
cl.set(2010, 04, 05);
Date d1 = cl.getTime();
System.out.println(d1);
}
}最后输出:
Tue Jan 05 00:00:00 CST 2010
2010-01-05
Wed May 05 10:16:34 CST 2010
为什么出错呢?

解决方案 »

  1.   

    把 DD 改为小写“dd”哦仔细地看一下 SimpleDateFormat 的 API DOC 就明白了。
      

  2.   


    第一个改过来了,原来是小写的'dd',没有看清API啊!
    不过第二个还是不对啊?请求帮助啊!
      

  3.   

    cl.set(2010, 04, 05); //Calendar的月份是0-11,04就是5月了
      

  4.   

    哦,搞对了啊!原来是自己没有好好熟悉API中关于日期的几个类!