我想創建一個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