使用SimpleDataFormat的Java中不可解析的时间
您好,我正在尝试将我的时间格式化为类似于使用SimpleDataFormat的Java中不可解析的时间,java,parsing,date,datetime,time,Java,Parsing,Date,Datetime,Time,您好,我正在尝试将我的时间格式化为类似于12:08 PM的格式,以便将其作为类型DATETIME添加到sqlite中。在我的DTO类中,相应的时间字段是Date类型 我得到了上面的错误,这样的字符串是不可解析的。这是为什么 请注意startHrs和startMin是两个JTextFields组件,分别取值为小时(12)和分钟(08) 如何成功解析日期 错误: SimpleDateFormat formatter = new SimpleDateFormat("h:mm a"); edto.se
12:08 PM
的格式,以便将其作为类型DATETIME
添加到sqlite中。在我的DTO类中,相应的时间字段是Date
类型
我得到了上面的错误,这样的字符串是不可解析的。这是为什么
请注意startHrs
和startMin
是两个JTextFields组件,分别取值为小时(12)和分钟(08)
如何成功解析日期
错误:
SimpleDateFormat formatter = new SimpleDateFormat("h:mm a");
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText());
您需要使用“a”设置PM/AM- 尝试分析:
java.text.ParseException: Unparseable date: "12:12"
at java.text.DateFormat.parse(DateFormat.java:337)
您需要添加AM或PM
12:12 AM
它适用于我您的
日期格式
是h:mm a
,与12:12
不匹配。它将与12:12 PM
匹配
试一试-
我建议您使用HH
而不是h
,后者表示一天中的小时数(0-23),您不需要预测Am/pm标记
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText()+" PM");
在上面的代码中,格式化程序字符串是hour:minute:am或pm,但我可以看到,作为输入,您只提供了hour和minute,这会导致无法解析的日期。请更正解析器格式字符串,或以小时:分钟:AM或小时:分钟:PM格式提供输入。请发布您的错误。我将删除格式的a
部分-您的startMin
字段似乎不包括AM/PM部分。你需要用不同的方式来处理,比如使用收音机,或者24小时。不,它不是自动的吗?我如何根据输入使它自动,不需要定义自动AM或PM?有什么想法吗
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText()+" PM");
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText());
SimpleDateFormat formatter = new SimpleDateFormat("h:mm a");
edto.setDate(formatter.parse(startHrs.getText() + ":" + startMin.getText());