|
17 | 17 | package com.fasterxml.jackson.datatype.jsr310.ser; |
18 | 18 |
|
19 | 19 | import com.fasterxml.jackson.core.JsonProcessingException; |
20 | | -import java.time.Instant; |
21 | | -import java.time.ZoneId; |
22 | | -import java.time.ZoneOffset; |
23 | | -import java.time.ZonedDateTime; |
| 20 | + |
| 21 | +import java.time.*; |
24 | 22 | import java.time.format.DateTimeFormatter; |
25 | 23 | import java.time.temporal.ChronoField; |
26 | 24 | import java.time.temporal.ChronoUnit; |
|
30 | 28 |
|
31 | 29 | import org.junit.jupiter.api.Test; |
32 | 30 |
|
| 31 | +import com.fasterxml.jackson.databind.*; |
33 | 32 | import com.fasterxml.jackson.databind.json.JsonMapper; |
34 | 33 | import com.fasterxml.jackson.datatype.jsr310.JavaTimeFeature; |
35 | 34 | import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; |
36 | 35 |
|
37 | 36 | import com.fasterxml.jackson.annotation.JsonFormat; |
38 | | -import com.fasterxml.jackson.databind.DeserializationFeature; |
39 | | -import com.fasterxml.jackson.databind.ObjectMapper; |
40 | | -import com.fasterxml.jackson.databind.SerializationFeature; |
41 | 37 | import com.fasterxml.jackson.databind.module.SimpleModule; |
42 | 38 | import com.fasterxml.jackson.datatype.jsr310.DecimalUtils; |
43 | 39 | import com.fasterxml.jackson.datatype.jsr310.MockObjectConfiguration; |
@@ -975,6 +971,20 @@ public void testShapeInt() throws JsonProcessingException { |
975 | 971 | assertEquals("{\"t1\":1651053600000,\"t2\":1651053600.000000000}", json1); |
976 | 972 | } |
977 | 973 |
|
| 974 | + // [dataformat-joda#92] DateTime serialization result is not same as Java 8 ZonedDateTime |
| 975 | + @Test |
| 976 | + public void testSerializationWithZone() throws Exception |
| 977 | + { |
| 978 | + ZonedDateTime java8ZonedDateTime = ZonedDateTime.of(2023, 10, 1, 12, 0, 0, 0, |
| 979 | + ZoneId.of("Asia/Shanghai")); |
| 980 | + |
| 981 | + String actual = MAPPER.writer() |
| 982 | + .without(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) |
| 983 | + .writeValueAsString(java8ZonedDateTime); |
| 984 | + |
| 985 | + assertEquals("\"2023-10-01T12:00:00+08:00\"", actual); |
| 986 | + } |
| 987 | + |
978 | 988 | private static void assertIsEqual(ZonedDateTime expected, ZonedDateTime actual) |
979 | 989 | { |
980 | 990 | assertTrue(expected.isEqual(actual), |
|
0 commit comments