为什么用一个字符串如'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
为什么出错呢?
我用‘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
为什么出错呢?
第一个改过来了,原来是小写的'dd',没有看清API啊!
不过第二个还是不对啊?请求帮助啊!