Caused by: java.text.ParseException: Unparseable date: "16/10/2013"?

B_qxzb 2013-10-10 06:31:41
【问题】解析字符串为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);

可以解决
...全文
1360 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
一直都是可以的,只不过楼主写错了,多了一个M参数。。 static final SimpleDateFormat sdf = new SimpleDateFormat("dd MMM,yyyy");
B_qxzb 2013-10-10
  • 打赏
  • 举报
回复
引用 3 楼 AA5279AA 的回复:
[quote=引用 2 楼 B_qxzb 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 你输入一下startDate.toString()看效果就知道了。。 你输入值如果是16/10/2013形式的话 那么应该 static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");这样吧。。
谢谢~ 1.表单的日期:是用了js的日期选择器;(格式是dd/MM/yyyy) 2.那我要是想解析成dd MMM,yyyy格式,该怎么做?[/quote] 中间依靠Date过渡一下。

public static void main(String[] args) {
		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 [/quote] 谢谢,你回复之后我想了一下,刚好和你说的一样,呵呵~
B_qxzb 2013-10-10
  • 打赏
  • 举报
回复
引用 4 楼 udbwcso 的回复:

日历控件都会有格式化的方法,实在找不到可以这么处理

String dateStr = "2010/05/19";
		String[] date = dateStr.split("/");
		String d = date[2] + " " + date[1] + "," + date[0];//dd MM,yyyy
谢谢~ 我刚才自己想了一下,发现和2楼的朋友说的方法是一样的,呵呵……
尘缘udbwcso 2013-10-10
  • 打赏
  • 举报
回复

日历控件都会有格式化的方法,实在找不到可以这么处理

String dateStr = "2010/05/19";
		String[] date = dateStr.split("/");
		String d = date[2] + " " + date[1] + "," + date[0];//dd MM,yyyy
失落夏天 2013-10-10
  • 打赏
  • 举报
回复
引用 2 楼 B_qxzb 的回复:
[quote=引用 1 楼 AA5279AA 的回复:] 你输入一下startDate.toString()看效果就知道了。。 你输入值如果是16/10/2013形式的话 那么应该 static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");这样吧。。
谢谢~ 1.表单的日期:是用了js的日期选择器;(格式是dd/MM/yyyy) 2.那我要是想解析成dd MMM,yyyy格式,该怎么做?[/quote] 中间依靠Date过渡一下。

public static void main(String[] args) {
		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
B_qxzb 2013-10-10
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
你输入一下startDate.toString()看效果就知道了。。 你输入值如果是16/10/2013形式的话 那么应该 static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");这样吧。。
谢谢~ 1.表单的日期:是用了js的日期选择器;(格式是dd/MM/yyyy) 2.那我要是想解析成dd MMM,yyyy格式,该怎么做?
失落夏天 2013-10-10
  • 打赏
  • 举报
回复
你输入一下startDate.toString()看效果就知道了。。 你输入值如果是16/10/2013形式的话 那么应该 static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");这样吧。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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