【问题】解析字符串为Date类型:出现如题错误?
1.代码片段
//添加:新建一个对象
static final SimpleDateFormat sdf = new SimpleDateFormat("dd MMM,yyyy");
……
Date expDeliDate=sdf.parse( request.getParameter("expectedDeliDate") );----------------
错误信息
Caused by: java.text.ParseException: Unparseable date: "16/10/2013"
at java.text.DateFormat.parse(DateFormat.java:335)
at com.ppet.cart.CartSvc.updateExtra(CartSvc.java:132)
at com.ppet.cart.action.CartInfoSaveAction.updateExtra(CartInfoSaveAction.java:41)
... 23 more
2.看了网上的一个帖子:试了一下,结果还是出现这个错误!!
(http://blog.sina.com.cn/s/blog_b694075d0101aabp.html)当用java将字符串格式转换成date类型时,自己定义一个String d = "2010/05/19"时,用语句转换: SimpleDateFormat sdf = new SimpleDateFormat( "yyyy/MM/dd HH:mm:ss" );
String ddd = "2009/10/19 00:00:00";
try {
Date d = sdf.parse(ddd);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}不会抛出java.text.ParseException: Unparseable date: "2009/10/19 00:00:00"
at java.text.DateFormat.parse(DateFormat.java:337)
at com.come.Dates.main(Dates.java:14)
异常但是当字符串是用String startDate = request.getParameter("startDate");传过来时会报异常解决方法:
一:Date startReportDate = sdf.parse(startDate.toString());对字符串进行toString 不明白为什么二:Date start = (Date)sdf.parseObject(startDate);可以解决 解析字符串为Date类型
1.代码片段
//添加:新建一个对象
static final SimpleDateFormat sdf = new SimpleDateFormat("dd MMM,yyyy");
……
Date expDeliDate=sdf.parse( request.getParameter("expectedDeliDate") );----------------
错误信息
Caused by: java.text.ParseException: Unparseable date: "16/10/2013"
at java.text.DateFormat.parse(DateFormat.java:335)
at com.ppet.cart.CartSvc.updateExtra(CartSvc.java:132)
at com.ppet.cart.action.CartInfoSaveAction.updateExtra(CartInfoSaveAction.java:41)
... 23 more
2.看了网上的一个帖子:试了一下,结果还是出现这个错误!!
(http://blog.sina.com.cn/s/blog_b694075d0101aabp.html)当用java将字符串格式转换成date类型时,自己定义一个String d = "2010/05/19"时,用语句转换: SimpleDateFormat sdf = new SimpleDateFormat( "yyyy/MM/dd HH:mm:ss" );
String ddd = "2009/10/19 00:00:00";
try {
Date d = sdf.parse(ddd);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}不会抛出java.text.ParseException: Unparseable date: "2009/10/19 00:00:00"
at java.text.DateFormat.parse(DateFormat.java:337)
at com.come.Dates.main(Dates.java:14)
异常但是当字符串是用String startDate = request.getParameter("startDate");传过来时会报异常解决方法:
一:Date startReportDate = sdf.parse(startDate.toString());对字符串进行toString 不明白为什么二:Date start = (Date)sdf.parseObject(startDate);可以解决 解析字符串为Date类型
你输入值如果是16/10/2013形式的话
那么应该
static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");这样吧。。
2.那我要是想解析成dd MMM,yyyy格式,该怎么做?
try {
String olddate="16/10/2013";
SimpleDateFormat sdf1=new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat sdf2=new SimpleDateFormat("dd MMM,yyyy");
Date parse = sdf1.parse(olddate);
String string = sdf2.format(parse).toString();
System.out.println(string);
} catch (ParseException e) {
e.printStackTrace();
}
}
结果:16 十月,2013
日历控件都会有格式化的方法,实在找不到可以这么处理String dateStr = "2010/05/19";
String[] date = dateStr.split("/");
String d = date[2] + " " + date[1] + "," + date[0];//dd MM,yyyy
try {
String olddate="16/10/2013";
SimpleDateFormat sdf1=new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat sdf2=new SimpleDateFormat("dd MMM,yyyy");
Date parse = sdf1.parse(olddate);
String string = sdf2.format(parse).toString();
System.out.println(string);
} catch (ParseException e) {
e.printStackTrace();
}
}
结果:16 十月,2013
谢谢,你回复之后我想了一下,刚好和你说的一样,呵呵~
static final SimpleDateFormat sdf = new SimpleDateFormat("dd MMM,yyyy");