Skip to content

Commit f486f63

Browse files
authored
Fix java date parsing to be compatible with joda (#36155)
ZonedDateTime toString format yyyy-MM-ddTHH:mmZ is failing parsing by our java-time DateFormatters whereas it passes Joda parsing. The pattern is strict_date_optional_time||epoch_millis
1 parent 3d91e31 commit f486f63

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

server/src/main/java/org/elasticsearch/common/time/DateFormatters.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,13 @@ public class DateFormatters {
8585
.optionalStart()
8686
.appendFraction(MILLI_OF_SECOND, 3, 3, true)
8787
.optionalEnd()
88+
.optionalEnd()
8889
.optionalStart()
8990
.appendZoneOrOffsetId()
9091
.optionalEnd()
9192
.optionalEnd()
9293
.optionalEnd()
9394
.optionalEnd()
94-
.optionalEnd()
9595
.toFormatter(Locale.ROOT);
9696

9797
private static final DateTimeFormatter STRICT_DATE_OPTIONAL_TIME_FORMATTER_2 = new DateTimeFormatterBuilder()

server/src/test/java/org/elasticsearch/common/joda/JavaJodaTimeDuellingTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ public void testDuelingStrictParsing() {
286286
assertParseException("2018-12-31T10:15:3", "strict_date_optional_time");
287287
assertParseException("2018-12-31T10:5:30", "strict_date_optional_time");
288288
assertParseException("2018-12-31T9:15:30", "strict_date_optional_time");
289+
assertSameDate("2015-01-04T00:00Z", "strict_date_optional_time");
289290
assertSameDate("2018-12-31T10:15:30.123Z", "strict_date_time");
290291
assertSameDate("2018-12-31T10:15:30.11Z", "strict_date_time");
291292
assertParseException("2018-12-31T10:15:3.123Z", "strict_date_time");

0 commit comments

Comments
 (0)