我想创建一个DateTimeformatter
验证以下日期时间:如何使用可选秒参数创建DateTimeformatter
String date1 = "2017-07-06T17:25:28";
String date2 = "2017-07-06T17:25:28.1";
String date3 = "2017-07-06T17:25:28.12";
String date4 = "2017-07-06T17:25:28.123";
String date5 = "2017-07-06T17:25:28.1234";
String date6 = "2017-07-06T17:25:28.12345";
String date7 = "2017-07-06T17:25:28.123456";
String date8 = "2017-07-06T17:25:28.";
我曾尝试以下日期时间格式验证上述日期:
public static final String DATE_TIME_FORMAT_PATTERN = "yyyy-MM-dd'T'HH:mm:ss";
DateTimeFormatter formatter1 = new DateTimeFormatterBuilder()
.appendPattern(DATE_TIME_FORMAT_PATTERN)
.appendFraction(ChronoField.MICRO_OF_SECOND, 0, 6, true)
.toFormatter();
它适用于所有上述日期,但根据我的要求,它应该失败java.time.format.DateTimeParseException
为date8
。
注:我知道我可以实现与以下格式预期结果:
DateTimeFormatter formatter2 = DateTimeFormatter
.ofPattern("yyyy-MM-dd'T'HH:mm:ss[.SSSSSS][.SSSSS][.SSSS][.SSS][.SS][.S]");
但我想知道在formatter1
改变这种才能实现预期的结果?
为了解析我使用下列日期:
LocalDateTime.parse(date1, formatter1);
什么是DATE_TIME_FORMATTER和DATE_TIME_FORMAT_PATTERN? –
@PallaviSonal:谢谢,我已经更新了我的问题。 –
@AmitGarg你为什么不接受我的回答?那是不是失败了,我错过了? – 2017-07-06 14:38:15