Java 中使用 SimpleDateFormat 的不可解析时间


SimpleDateFormat formatter = new SimpleDateFormat("h:mm a");
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText());

您好,我正在尝试将我的时间格式化为类似 12:08 PM 的东西,以作为类型 DATETIME 添加到 sqlite 中。 在我的 DTO 类中,相应的时间字段是Date类型。

我收到上述错误,即此类字符串无法解析。这是为什么。

请注意startHrsstartMin是两个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 a12: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 格式提供输入。

相关内容

  • 没有找到相关文章

最新更新