java - How can I make Joda DateTime parser to only accept strings of form yyyyMMdd? -
i use joda-time parse dates in format yyyymmdd (so date should have 8 digits). defined date formatter follows
datetimeformatter formatter = datetimeformat.forpattern("yyyymmdd").withzoneutc(); // valid eight-digit date string datevalid = "20130814"; datetime datejoda = formatter.parsedatetime(datevalid); system.out.println(datejoda.tostring()); // invalid 7 digit date string dateinvalid = "2013081"; datejoda = formatter.parsedatetime(dateinvalid); system.out.println(datejoda.tostring());
i expected see exception when parsing second invalid date. output of code
2013-08-14t00:00:00.000z 2013-08-01t00:00:00.000z
why joda parser accept invalid date 7 digits? how have change formatter not accept dates don't have 8 digits?
the option know of create own datetimeformatter using datetimeformatterbuilder , use fixed decimals each field.
in case be:
datetimeformatter formatter = new datetimeformatterbuilder() .appendfixeddecimal(datetimefieldtype.year(),4) .appendfixeddecimal(datetimefieldtype.monthofyear(),2) .appendfixeddecimal(datetimefieldtype.dayofmonth(),2) .toformatter() .withzoneutc();
Comments
Post a Comment