Skip to content

Commit f9a8435

Browse files
use toLocalXXX for java.sql date/time/timestamp objects
1 parent 84c9528 commit f9a8435

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

src/main/java/dev/toonformat/jtoon/normalizer/JsonNormalizer.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import java.math.BigDecimal;
1919
import java.math.BigInteger;
20-
import java.text.SimpleDateFormat;
2120
import java.time.Instant;
2221
import java.time.LocalDate;
2322
import java.time.LocalDateTime;
@@ -55,8 +54,6 @@ public final class JsonNormalizer {
5554
JsonNormalizer::tryNormalizeCollection,
5655
JsonNormalizer::tryNormalizePojo);
5756

58-
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
59-
6057
private JsonNormalizer() {
6158
throw new UnsupportedOperationException("Utility class cannot be instantiated");
6259
}
@@ -227,12 +224,12 @@ private static JsonNode tryNormalizeTemporal(Object value) {
227224
return StringNode.valueOf(calendar.toInstant().toString());
228225
} else if (value instanceof Instant instant) {
229226
return StringNode.valueOf(instant.toString());
227+
} else if (value instanceof java.sql.Timestamp timestamp) {
228+
return formatTemporal(timestamp.toLocalDateTime(), DateTimeFormatter.ISO_LOCAL_DATE_TIME);
230229
} else if (value instanceof java.sql.Date date) {
231-
return StringNode.valueOf(DATE_FORMAT.format(date));
230+
return formatTemporal(date.toLocalDate(), DateTimeFormatter.ISO_LOCAL_DATE);
232231
} else if (value instanceof java.sql.Time time) {
233-
return StringNode.valueOf(DATE_FORMAT.format(time));
234-
} else if (value instanceof java.sql.Timestamp timestamp) {
235-
return StringNode.valueOf(DATE_FORMAT.format(timestamp));
232+
return formatTemporal(time.toLocalTime(), DateTimeFormatter.ISO_LOCAL_TIME);
236233
} else if (value instanceof Date date) {
237234
return StringNode.valueOf(LocalDate.ofInstant(date.toInstant(), ZoneId.systemDefault()).toString());
238235
} else {

src/test/java/dev/toonformat/jtoon/normalizer/JsonNormalizerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ void testSQLDate() {
336336
java.sql.Date dateTime = new java.sql.Date(1766419274);
337337
JsonNode result = JsonNormalizer.normalize(dateTime);
338338
assertTrue(result.isString());
339-
assertEquals("1970-01-21T11:40:19+0100", result.asString());
339+
assertEquals("1970-01-21", result.asString());
340340
}
341341

342342
@Test
@@ -345,7 +345,7 @@ void testSQLTime() {
345345
java.sql.Time time = new java.sql.Time(1766419274);
346346
JsonNode result = JsonNormalizer.normalize(time);
347347
assertTrue(result.isString());
348-
assertEquals("1970-01-21T11:40:19+0100", result.asString());
348+
assertEquals("11:40:19", result.asString());
349349
}
350350

351351
@Test
@@ -354,7 +354,7 @@ void testSQLTimeStamp() {
354354
java.sql.Timestamp dateTime = new java.sql.Timestamp(1766419274);
355355
JsonNode result = JsonNormalizer.normalize(dateTime);
356356
assertTrue(result.isString());
357-
assertEquals("1970-01-21T11:40:19+0100", result.asString());
357+
assertEquals("1970-01-21T11:40:19.274", result.asString());
358358
}
359359

360360

0 commit comments

Comments
 (0)