Skip to content

Commit f2d4756

Browse files
committed
fix: coerce Zoned and Offset time to UTC
1 parent 833bdfe commit f2d4756

File tree

1 file changed

+13
-5
lines changed
  • graphql-jpa-query-schema/src/main/java/com/introproventures/graphql/jpa/query/schema

1 file changed

+13
-5
lines changed

graphql-jpa-query-schema/src/main/java/com/introproventures/graphql/jpa/query/schema/JavaScalars.java

+13-5
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,14 @@
2121
import java.text.DateFormat;
2222
import java.text.ParseException;
2323
import java.text.SimpleDateFormat;
24-
import java.time.*;
24+
import java.time.Instant;
25+
import java.time.LocalDate;
26+
import java.time.LocalDateTime;
27+
import java.time.LocalTime;
28+
import java.time.OffsetDateTime;
29+
import java.time.ZoneId;
30+
import java.time.ZoneOffset;
31+
import java.time.ZonedDateTime;
2532
import java.time.format.DateTimeFormatter;
2633
import java.time.format.DateTimeParseException;
2734
import java.util.Collections;
@@ -34,6 +41,9 @@
3441
import java.util.UUID;
3542
import java.util.stream.Collectors;
3643

44+
import org.slf4j.Logger;
45+
import org.slf4j.LoggerFactory;
46+
3747
import graphql.Assert;
3848
import graphql.Scalars;
3949
import graphql.language.ArrayValue;
@@ -51,8 +61,6 @@
5161
import graphql.schema.CoercingParseValueException;
5262
import graphql.schema.CoercingSerializeException;
5363
import graphql.schema.GraphQLScalarType;
54-
import org.slf4j.Logger;
55-
import org.slf4j.LoggerFactory;
5664

5765
/**
5866
* Provides Registry to resolve GraphQL Query Java Scalar Types
@@ -374,7 +382,7 @@ public Object serialize(Object input) {
374382
if (input instanceof String) {
375383
return parseStringToZonedDateTime((String) input);
376384
} else if (input instanceof ZonedDateTime) {
377-
return input;
385+
return ((ZonedDateTime) input).withZoneSameInstant(ZoneId.of("UTC"));
378386
} else if (input instanceof LocalDate) {
379387
return input;
380388
} else if (input instanceof Long) {
@@ -419,7 +427,7 @@ public Object serialize(Object input) {
419427
if (input instanceof String) {
420428
return parseStringToOffsetDateTime((String) input);
421429
} else if (input instanceof OffsetDateTime) {
422-
return input;
430+
return ((OffsetDateTime) input).withOffsetSameInstant(ZoneOffset.of("Z"));
423431
} else if (input instanceof LocalDate) {
424432
return input;
425433
} else if (input instanceof Long) {

0 commit comments

Comments
 (0)