LocalDateTime.parse() with a pattern only numbers

Viewed 1555

I want to parse a LocalDateTime from the following pattern:

yyyyMMddHHmmss000000

That means the usual "yyyy...ss" and then six trailing zeros.

So, formatting works fine:

String p = "yyyyMMddHHmmss'000000'";
LocalDateTime.now().format(DateTimeFormatter.ofPattern(p));

and but parsing:

String p, v;
p = "yyyyMMddHHmmss";                                    // without '000000'
v = "20160131235930";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p));  // it works


p = "yyyy-MMddHHmmss'000000'";                           // with '-' in between
v = "2016-0131235930000000";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p));  // it works


p = "yyyyMMddHHmmss'000000'";                            // with '000000' but without '-'
v = "20160131235930000000";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p));  // it throws Exception

The Exception:

java.time.format.DateTimeParseException: Text '20160131235930000000' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1947)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1849)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
...

I can't change the format of the input value. How can I parse it correctly? Is my pattern wrong?

Java Version: 1.8.0_60 on OSX

1 Answers
Related