SimpleDateFormat formatter = new SimpleDateFormat("h:mm a");
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText());
您好,我正在尝试将我的时间格式化为类似 12:08 PM
的东西,以作为类型 DATETIME
添加到 sqlite 中。 在我的 DTO 类中,相应的时间字段是Date
类型。
我收到上述错误,即此类字符串无法解析。这是为什么。
请注意startHrs
和startMin
是两个JTextFields组件,分别采用小时(12(和分钟(08(的值。
如何成功解析日期?
错误:
java.text.ParseException: Unparseable date: "12:12"
at java.text.DateFormat.parse(DateFormat.java:337)
您需要添加AM或PM
edto.setDate(formatter.parse(startHrs + ":" + startMin + " AM"));
它对我有用
您的dateformat
h:mm a
与12:12
不匹配。它将与12:12 PM
匹配.
尝试-
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText()+" PM");
我建议您使用HH
而不是h
表示一天中的小时数(0-23(,在那里您不需要预测Am/pm marker
。
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText());
使用"a"来设置PM/AM - http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
尝试解析:
12:12 AM
SimpleDateFormat formatter = new SimpleDateFormat("h:mm a");
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText());
在上面的代码格式化程序字符串是 hour:minute:am 或 pm,但我可以看到作为输入,您只提供小时和分钟,这会导致无法解析的日期。更正解析器格式字符串或以小时:分钟:AM 或小时:分钟:PM 格式提供输入。