ParseException when parsing 3 character abbreviated month using SimpleDateFormat

坚强是说给别人听的谎言 提交于 2019-11-29 18:52:34

The pattern should be MMM because there are three characters in the month.

You should also prefer java.time classes to the ones you're currently using if you're on Java 8 or above:

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);

Use this pattern: dd-MMM-yyyy HH:mm:ss

Date dft  = (Date) format.parse("16-05-2018 09:30:22");

OR change it to

SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");

you are using dd-MM-yyyy HH:mm:ss, so parsable is

16-05-2018 09:30:22

and if you want 16-MAY-2018 09:30:22 then use

dd-MMM-yyyy HH:mm:ss

"16-MAY-2018 09:30:22" is not parsable with that time format. If you want to parse that you have to change date format to "dd-MMM-yyyy HH:mm:ss". The double M is only for numbered months (so should be 05 for May).

Check the SimpleDateFormat javadoc for more details: here

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!