Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PatternWith00Literals {
- private static final Map<String, ChronoFormatter<PlainDate>> PARSERS;
- static {
- Map<String, ChronoFormatter<PlainDate>> parsers = new HashMap<>();
- parsers.put("ddMMyyyy", create("0000yyyy|00MMyyyy|dd00yyyy|ddMMyyyy"));
- parsers.put("MMddyyyy", create("0000yyyy|MM00yyyy|00ddyyyy|MMddyyyy"));
- parsers.put("yyyyMMdd", create("yyyy0000|yyyyMM00|yyyy00dd|yyyyMMdd"));
- PARSERS = Collections.unmodifiableMap(parsers);
- }
- private static ChronoFormatter<PlainDate> create(String pattern) {
- return
- ChronoFormatter.ofDatePattern(pattern, PatternType.CLDR, Locale.ROOT)
- .withDefault(PlainDate.MONTH_AS_NUMBER, 1)
- .withDefault(PlainDate.DAY_OF_MONTH, 1);
- }
- public static void main(String[] args) throws Exception {
- ChronoFormatter<PlainDate> df1 = PARSERS.get("ddMMyyyy");
- System.out.println(df1.parse("04122017")); // 2017-12-04
- System.out.println(df1.parse("00122017")); // 2017-12-01
- System.out.println(df1.parse("04002017")); // 2017-01-04
- System.out.println(df1.parse("00002017")); // 2017-01-01
- ChronoFormatter<PlainDate> df2 = PARSERS.get("MMddyyyy");
- System.out.println(df2.parse("12042017")); // 2017-12-04
- System.out.println(df2.parse("12002017")); // 2017-12-01
- System.out.println(df2.parse("00042017")); // 2017-01-04
- System.out.println(df2.parse("00002017")); // 2017-01-01
- ChronoFormatter<PlainDate> df3 = PARSERS.get("yyyyMMdd");
- System.out.println(df3.parse("20171204")); // 2017-12-04
- System.out.println(df3.parse("20171200")); // 2017-12-01
- System.out.println(df3.parse("20170004")); // 2017-01-04
- System.out.println(df3.parse("20170000")); // 2017-01-01
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement