Skip to content

Commit 0a878ba

Browse files
Fix using UTC when converting to timestamp.
Signed-off-by: Yury-Fridlyand <[email protected]>
1 parent 9d3f6be commit 0a878ba

File tree

5 files changed

+8
-12
lines changed

5 files changed

+8
-12
lines changed

core/src/main/java/org/opensearch/sql/data/model/ExprDateValue.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import java.time.LocalDate;
1212
import java.time.LocalDateTime;
1313
import java.time.LocalTime;
14-
import java.time.ZoneId;
1514
import java.time.ZonedDateTime;
1615
import java.time.format.DateTimeFormatter;
1716
import java.time.format.DateTimeParseException;
@@ -67,7 +66,7 @@ public LocalDateTime datetimeValue() {
6766

6867
@Override
6968
public Instant timestampValue() {
70-
return ZonedDateTime.of(date, timeValue(), ZoneId.of("UTC")).toInstant();
69+
return ZonedDateTime.of(date, timeValue(), ExprTimestampValue.ZONE).toInstant();
7170
}
7271

7372
@Override

core/src/main/java/org/opensearch/sql/data/model/ExprDatetimeValue.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import java.time.LocalDate;
1212
import java.time.LocalDateTime;
1313
import java.time.LocalTime;
14-
import java.time.ZoneId;
1514
import java.time.ZonedDateTime;
1615
import java.time.format.DateTimeFormatter;
1716
import java.time.format.DateTimeFormatterBuilder;
@@ -71,7 +70,7 @@ public LocalTime timeValue() {
7170

7271
@Override
7372
public Instant timestampValue() {
74-
return ZonedDateTime.of(datetime, ZoneId.of("UTC")).toInstant();
73+
return ZonedDateTime.of(datetime, ExprTimestampValue.ZONE).toInstant();
7574
}
7675

7776
@Override

core/src/main/java/org/opensearch/sql/data/model/ExprTimeValue.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import java.time.LocalDate;
1313
import java.time.LocalDateTime;
1414
import java.time.LocalTime;
15-
import java.time.ZoneId;
1615
import java.time.ZonedDateTime;
1716
import java.time.format.DateTimeFormatter;
1817
import java.time.format.DateTimeParseException;
@@ -68,7 +67,7 @@ public LocalDateTime datetimeValue() {
6867

6968
@Override
7069
public Instant timestampValue() {
71-
return ZonedDateTime.of(dateValue(), timeValue(), ZoneId.of("UTC")).toInstant();
70+
return ZonedDateTime.of(dateValue(), timeValue(), ExprTimestampValue.ZONE).toInstant();
7271
}
7372

7473
@Override

core/src/main/java/org/opensearch/sql/data/model/ExprTimestampValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class ExprTimestampValue extends AbstractExprValue {
3030
/**
3131
* todo. only support UTC now.
3232
*/
33-
private static final ZoneId ZONE = ZoneId.of("UTC");
33+
public static final ZoneId ZONE = ZoneId.of("UTC");
3434

3535
private final Instant timestamp;
3636

core/src/test/java/org/opensearch/sql/data/model/DateTimeValueTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.time.LocalDate;
1616
import java.time.LocalDateTime;
1717
import java.time.LocalTime;
18-
import java.time.ZoneId;
1918
import java.time.ZonedDateTime;
2019
import org.junit.jupiter.api.Test;
2120
import org.opensearch.sql.exception.ExpressionEvaluationException;
@@ -34,7 +33,7 @@ public void timeValueInterfaceTest() {
3433
assertEquals(LocalDate.now(), timeValue.dateValue());
3534
assertEquals(LocalDate.now().atTime(1, 1, 1), timeValue.datetimeValue());
3635
assertEquals(ZonedDateTime.of(LocalTime.parse("01:01:01").atDate(LocalDate.now()),
37-
ZoneId.of("UTC")).toInstant(), timeValue.timestampValue());
36+
ExprTimestampValue.ZONE).toInstant(), timeValue.timestampValue());
3837
assertEquals("01:01:01", timeValue.value());
3938
assertEquals("TIME '01:01:01'", timeValue.toString());
4039
assertThrows(ExpressionEvaluationException.class, () -> integerValue(1).timeValue(),
@@ -47,7 +46,7 @@ public void timestampValueInterfaceTest() {
4746

4847
assertEquals(TIMESTAMP, timestampValue.type());
4948
assertEquals(ZonedDateTime.of(LocalDateTime.parse("2020-07-07T01:01:01"),
50-
ZoneId.of("UTC")).toInstant(), timestampValue.timestampValue());
49+
ExprTimestampValue.ZONE).toInstant(), timestampValue.timestampValue());
5150
assertEquals("2020-07-07 01:01:01", timestampValue.value());
5251
assertEquals("TIMESTAMP '2020-07-07 01:01:01'", timestampValue.toString());
5352
assertEquals(LocalDate.parse("2020-07-07"), timestampValue.dateValue());
@@ -65,7 +64,7 @@ public void dateValueInterfaceTest() {
6564
assertEquals(LocalTime.parse("00:00:00"), dateValue.timeValue());
6665
assertEquals(LocalDateTime.parse("2012-07-07T00:00:00"), dateValue.datetimeValue());
6766
assertEquals(ZonedDateTime.of(LocalDateTime.parse("2012-07-07T00:00:00"),
68-
ZoneId.of("UTC")).toInstant(), dateValue.timestampValue());
67+
ExprTimestampValue.ZONE).toInstant(), dateValue.timestampValue());
6968
ExpressionEvaluationException exception =
7069
assertThrows(ExpressionEvaluationException.class, () -> integerValue(1).dateValue());
7170
assertEquals("invalid to get dateValue from value of type INTEGER",
@@ -80,7 +79,7 @@ public void datetimeValueInterfaceTest() {
8079
assertEquals(LocalDate.parse("2020-08-17"), datetimeValue.dateValue());
8180
assertEquals(LocalTime.parse("19:44:00"), datetimeValue.timeValue());
8281
assertEquals(ZonedDateTime.of(LocalDateTime.parse("2020-08-17T19:44:00"),
83-
ZoneId.of("UTC")).toInstant(), datetimeValue.timestampValue());
82+
ExprTimestampValue.ZONE).toInstant(), datetimeValue.timestampValue());
8483
assertEquals("DATETIME '2020-08-17 19:44:00'", datetimeValue.toString());
8584
assertThrows(ExpressionEvaluationException.class, () -> integerValue(1).datetimeValue(),
8685
"invalid to get datetimeValue from value of type INTEGER");

0 commit comments

Comments
 (0)