Java 8 时间 API:如何将格式为 "MM.yyyy" 的字符串解析为 LocalDate
Java 8 时间 API:如何将格式为 "MM.yyyy" 的字符串解析为 LocalDate
我对在Java 8 Time API中解析日期有些泄气。
之前我可以很容易地写出:
String date = "04.2013"; DateFormat df = new SimpleDateFormat("MM.yyyy"); Date d = df.parse(date);
但现在如果我使用LocalDate并像这样操作:
String date = "04.2013"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM.yyyy"); LocalDate ld = LocalDate.parse(date, formatter);
我会收到一个异常:
java.time.format.DateTimeParseException: 在索引0处无法解析文本“04” java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1948) java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1850) java.time.LocalDate.parse(LocalDate.java:400) java.time.LocalDate.parse(LocalDate.java:385) com.luxoft.ath.controllers.JsonController.region(JsonController.java:38) ...(省略部分异常信息)
如果我将字符串格式更改为“yyyy-MM-dd”,一切就都能完美地工作,甚至不需要使用formatter:
String date = "2013-04-12"; LocalDate ld = LocalDate.parse(date);
所以我的问题是:如何使用Java 8 Time API以自定义格式解析日期?