这是我的代码,
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date dft = (Date) format.parse("16-MAY-2018 09:30:22:000");
我正处于异常
之下java.text.ParseException:Unparseable date:" 16-MAY-2018 09:30:22"
用于解析毫秒的内容是什么?
答案 0 :(得分:3)
模式应为MMM,因为当月有三个字符。
如果您使用的是Java 8或以上版本,您还应该选择java.time
课程,而不是您目前正在使用的课程:
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern("dd-MMM-yyyy")
.appendLiteral(' ')
.append(ISO_LOCAL_TIME)
.toFormatter();
LocalDateTime timestamp = LocalDateTime.parse("16-May-2018 09:30:22", formatter);
答案 1 :(得分:0)
使用此模式:dd- MMM -yyyy HH:mm:ss
答案 2 :(得分:0)
" 16-MAY-2018 09:30:22"无法使用该时间格式进行分析。如果要解析必须将日期格式更改为" dd-MMM-yyyy HH:mm:ss"。双M仅适用于编号的月份(5月份应为05)。
检查SimpleDateFormat javadoc以获取更多详细信息:here
答案 3 :(得分:0)
Date dft = (Date) format.parse("16-05-2018 09:30:22");
或将其更改为
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
答案 4 :(得分:0)
你正在使用dd-MM-yyyy HH:mm:ss,所以可解析
16-05-2018 09:30:22
如果您想要16-MAY-2018 09:30:22那么请使用
dd-MMM-yyyy HH:mm:ss