提问者:小点点

Java8 DateTimeFor物质解析日期,同时包含个位数和两位数天[重复]


我正在使用DateTimeFor物质来解析日期:

private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate.parse("05/12/2015", parser); // it's ok
LocalDate.parse("5/12/2015", parser); // Exception

不幸的是,它无法正确解析带有单个日期数字的日期,例如“5/12/2015”

我阅读了其他一些帖子,但建议的解决方案不适合我。我需要一种方法来解析可以有个位数或两位数的日期。


共1个答案

匿名用户

只需使用d而不是dd-它仍然允许前导0,但不需要它。我怀疑你也想在几个月内做同样的事情——有“1或2位数”的天数但没有几个月会很奇怪……

import java.time.*;
import java.time.format.*;

public class Test {
    public static void main(String[] args) throws Exception {
        DateTimeFormatter parser = DateTimeFormatter.ofPattern("d/M/yyyy");
        System.out.println(LocalDate.parse("05/1/2015", parser));
        System.out.println(LocalDate.parse("05/01/2015", parser));
        System.out.println(LocalDate.parse("05/12/2015", parser));
        System.out.println(LocalDate.parse("5/12/2015", parser));
    }
}