将dd-MMM-yyyy转换为MM/dd/yyyy格式

son*_*nam 2 java sql-server

我的日期字符串为"02-SEP-2012".我想将其转换为8/02/2012格式.

String deliverydate="02-SEP-2012";
SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy");

Date date=sdf.parse(deliveryDate);
Run Code Online (Sandbox Code Playgroud)

这给了我

java.text.ParseException: Unparseable date: "01-Sep-2012"
Run Code Online (Sandbox Code Playgroud)

如何解析这个?我想在MS SQL中插入此日期.

Mad*_*mer 5

2018/Java 10

String deliverydate="02-SEP-2012";
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
                .parseCaseInsensitive()
                .appendPattern("dd-MMM-yyyy")
                .toFormatter(Locale.UK);
LocalDate ld = LocalDate.parse(deliverydate, formatter);
System.out.println(ld);
Run Code Online (Sandbox Code Playgroud)

原始答案

看看两个字符串,02-SEP-2012以及MM/dd/yyyy-这些都不是相同的格式.

日期解析器期望String与格式化程序的格式相同

String deliverydate="02-SEP-2012";
SimpleDateFormat sdf=new SimpleDateFormat("dd-MMM-yyyy");

Date date=sdf.parse(deliveryDate);

sdf=new SimpleDateFormat("MM/dd/yyyy");
System.out.println(sdf.format(date));
Run Code Online (Sandbox Code Playgroud)