From fa317014a7c73545a63fcdcad8bc0528a11c656d Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Fri, 29 May 2020 18:52:54 +0200 Subject: [PATCH] DATAES-847 - Add missing DateFormat values. Original PR: #469 --- .../elasticsearch/annotations/DateFormat.java | 9 ++++---- .../ElasticsearchDateConverterTests.java | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/annotations/DateFormat.java b/src/main/java/org/springframework/data/elasticsearch/annotations/DateFormat.java index 990abfd2..75c90364 100644 --- a/src/main/java/org/springframework/data/elasticsearch/annotations/DateFormat.java +++ b/src/main/java/org/springframework/data/elasticsearch/annotations/DateFormat.java @@ -17,6 +17,7 @@ package org.springframework.data.elasticsearch.annotations; /** * @author Jakub Vavrik + * @author Tim te Beek * Values based on reference doc - https://www.elastic.co/guide/reference/mapping/date-format/ */ public enum DateFormat { @@ -24,8 +25,8 @@ public enum DateFormat { basic_ordinal_date_time_no_millis, basic_time, basic_time_no_millis, basic_t_time, basic_t_time_no_millis, basic_week_date, basic_week_date_time, basic_week_date_time_no_millis, date, date_hour, date_hour_minute, date_hour_minute_second, date_hour_minute_second_fraction, date_hour_minute_second_millis, date_optional_time, - date_time, date_time_no_millis, hour, hour_minute, hour_minute_second, hour_minute_second_fraction, - hour_minute_second_millis, ordinal_date, ordinal_date_time, ordinal_date_time_no_millis, time, time_no_millis, - t_time, t_time_no_millis, week_date, week_date_time, weekDateTimeNoMillis, week_year, weekyearWeek, - weekyearWeekDay, year, year_month, year_month_day + date_time, date_time_no_millis, epoch_millis, epoch_second, hour, hour_minute, hour_minute_second, + hour_minute_second_fraction, hour_minute_second_millis, ordinal_date, ordinal_date_time, + ordinal_date_time_no_millis, time, time_no_millis, t_time, t_time_no_millis, week_date, week_date_time, + week_date_time_no_millis, weekyear, weekyear_week, weekyear_week_day, year, year_month, year_month_day } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchDateConverterTests.java b/src/test/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchDateConverterTests.java index 58890750..c1f6b352 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchDateConverterTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchDateConverterTests.java @@ -2,6 +2,7 @@ package org.springframework.data.elasticsearch.core.convert; import static org.assertj.core.api.Assertions.*; +import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; @@ -16,6 +17,7 @@ import org.springframework.data.elasticsearch.annotations.DateFormat; /** * @author Peter-Josef Meisch + * @author Tim te Beek */ class ElasticsearchDateConverterTests { @@ -76,4 +78,24 @@ class ElasticsearchDateConverterTests { assertThat(parsed).isEqualTo(legacyDate); } + + @Test + void shouldParseEpochMillisString() { + Instant instant = Instant.ofEpochMilli(1234568901234L); + ElasticsearchDateConverter converter = ElasticsearchDateConverter.of(DateFormat.epoch_millis); + + Date parsed = converter.parse("1234568901234"); + + assertThat(parsed.toInstant()).isEqualTo(instant); + } + + @Test + void shouldConvertInstantToString() { + Instant instant = Instant.ofEpochMilli(1234568901234L); + ElasticsearchDateConverter converter = ElasticsearchDateConverter.of(DateFormat.epoch_millis); + + String formatted = converter.format(instant); + + assertThat(formatted).isEqualTo("1234568901234"); + } }