我有这段代码:
SimpleDateFormat sParse = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
java.util.Date sDate = sParse.parse(startDate + " 00:00:00");
当startDate
的值采用以下格式时,上述工作正常:“23-10-2014”
但我的startDate
采用以下格式:“2014年10月23日”,我得到了:
java.text.ParseException: Unparseable date: "23/10/2014".
我如何克服这个问题?
答案 0 :(得分:3)
你要求编译器解析日期dd-MM-yyyy并且你正在尝试发送dd / MM / yyyy,所以显然它会抛出解析错误,如果你不知道你输入哪种格式然后使用此代码
SimpleDateFormat sParse = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
String startDate="23/10/2014".replace("/", "-");
java.util.Date sDate = sParse.parse(startDate+ " 00:00:00");
System.out.println(sDate);
对于这种日期格式,您可以传递以获得输出 23/10/2014 要么 23-10-2014
答案 1 :(得分:1)
使用代码SimpleDateFormat sParse = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
,您告诉解析器期望日期格式为23-10-2014(由 - 分隔),所以显然它不会解析' 23/10/2014年'
为此,您需要将格式字符串指定为dd/MM/yyyy
答案 2 :(得分:0)
理想情况下,您不需要添加" 00:00:00"到startDate字符串。因为,您在日期字符串中获得小时,分钟值,它默认为0.您可以删除" HH:MM:SS"来自模式。
SimpleDateFormat sParse = new SimpleDateFormat(" dd-MM-yyyy hh:mm:ss"); java.util.Date sDate = sParse.parse(startDate +" 00:00:00");
因此如上面的答案所述,你可以简单地做:
SimpleDateFormat sParse = new SimpleDateFormat("dd-MM-yyyy");
String startDate="23/10/2014".replace("/", "-");
java.util.Date sDate = sParse.parse(startDate);
System.out.println(sDate);