为什么日期转换不符啊

KaneTing 2010-04-05 10:18:50
为什么用一个字符串如'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
为什么出错呢?
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
KaneTing 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bao110908 的回复:]
把 DD 改为小写“dd”哦

仔细地看一下 SimpleDateFormat 的 API DOC 就明白了。
[/Quote]

第一个改过来了,原来是小写的'dd',没有看清API啊!
不过第二个还是不对啊?请求帮助啊!
  • 打赏
  • 举报
回复
把 DD 改为小写“dd”哦

仔细地看一下 SimpleDateFormat 的 API DOC 就明白了。
KaneTing 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qybao 的回复:]

cl.set(2010, 04, 05); //Calendar的月份是0-11,04就是5月了
[/Quote]
哦,搞对了啊!原来是自己没有好好熟悉API中关于日期的几个类!
qybao 2010-04-05
  • 打赏
  • 举报
回复
cl.set(2010, 04, 05); //Calendar的月份是0-11,04就是5月了

62,636

社区成员

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

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