diff --git a/modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/org.elasticsearch.txt b/modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/org.elasticsearch.txt index 031fc342f339b..c1da194b98fb3 100644 --- a/modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/org.elasticsearch.txt +++ b/modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/org.elasticsearch.txt @@ -127,6 +127,17 @@ class org.elasticsearch.script.JodaCompatibleZonedDateTime { ZonedDateTime withZoneSameLocal(ZoneId) ZonedDateTime withZoneSameInstant(ZoneId) + #### ChronoZonedDateTime + int compareTo(JodaCompatibleZonedDateTime) + Chronology getChronology() + String format(DateTimeFormatter) + int get(TemporalField) + long getLong(TemporalField) + ZoneOffset getOffset() + boolean isSupported(TemporalField) + long toEpochSecond() + LocalTime toLocalTime() + #### Joda methods that exist in java time boolean equals(Object) int hashCode() diff --git a/server/src/main/java/org/elasticsearch/script/JodaCompatibleZonedDateTime.java b/server/src/main/java/org/elasticsearch/script/JodaCompatibleZonedDateTime.java index fc3816cad8a15..017acbf4951ec 100644 --- a/server/src/main/java/org/elasticsearch/script/JodaCompatibleZonedDateTime.java +++ b/server/src/main/java/org/elasticsearch/script/JodaCompatibleZonedDateTime.java @@ -32,10 +32,14 @@ import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.time.Month; import java.time.OffsetDateTime; import java.time.ZoneId; +import java.time.ZoneOffset; import java.time.ZonedDateTime; +import java.time.chrono.Chronology; +import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoField; import java.time.temporal.TemporalAdjuster; import java.time.temporal.TemporalAmount; @@ -94,6 +98,42 @@ public String toString() { return DATE_FORMATTER.format(dt); } + public String format(DateTimeFormatter formatter) { + return dt.format(formatter); + } + + public int get(TemporalField field) { + return dt.get(field); + } + + public long getLong(TemporalField field) { + return dt.getLong(field); + } + + public Chronology getChronology() { + return dt.getChronology(); + } + + public int compareTo(JodaCompatibleZonedDateTime o) { + return dt.compareTo(o.dt); + } + + public ZoneOffset getOffset() { + return dt.getOffset(); + } + + public boolean isSupported(TemporalField field) { + return dt.isSupported(field); + } + + public long toEpochSecond() { + return dt.toEpochSecond(); + } + + public LocalTime toLocalTime() { + return dt.toLocalTime(); + } + public boolean isAfter(JodaCompatibleZonedDateTime o) { return dt.isAfter(o.getZonedDateTime()); } @@ -106,6 +146,8 @@ public boolean isEqual(JodaCompatibleZonedDateTime o) { return dt.isEqual(o.getZonedDateTime()); } + + public int getDayOfMonth() { return dt.getDayOfMonth(); }