আমি অন্য একটি সমাধান পেয়েছি যা আপনি এটি যে কোনও বিন্যাসে রূপান্তর করতে পারেন এবং সমস্ত লোকালডেটটাইম ডেটাটাইপগুলিতে প্রয়োগ করতে পারেন এবং আপনাকে প্রতিটি লোকালডিটটাইম ডেটাটাইপের উপরে @ জসনফর্ম্যাট নির্দিষ্ট করতে হবে না। প্রথমে নির্ভরতা যুক্ত করুন:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
নিম্নলিখিত শিম যুক্ত করুন:
@Configuration
public class Java8DateTimeConfiguration {
/**
* Customizing
* http://docs.spring.io/spring-boot/docs/current/reference/html/howto-spring-mvc.html
*
* Defining a @Bean of type Jackson2ObjectMapperBuilder will allow you to customize both default ObjectMapper and XmlMapper (used in MappingJackson2HttpMessageConverter and MappingJackson2XmlHttpMessageConverter respectively).
*/
@Bean
public Module jsonMapperJava8DateTimeModule() {
val bean = new SimpleModule();
bean.addDeserializer (ZonedDateTime.class, new JsonDeserializer<ZonedDateTime>() {
@Override
public ZonedDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return ZonedDateTime.parse(jsonParser.getValueAsString(), DateTimeFormatter.ISO_ZONED_DATE_TIME);
}
});
bean.addDeserializer(LocalDateTime.class, new JsonDeserializer<LocalDateTime>() {
@Override
public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return LocalDateTime.parse(jsonParser.getValueAsString(), DateTimeFormatter.ISO_LOCAL_DATE_TIME);
}
});
bean.addSerializer(ZonedDateTime.class, new JsonSerializer<ZonedDateTime>() {
@Override
public void serialize(
ZonedDateTime zonedDateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException {
jsonGenerator.writeString(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(zonedDateTime));
}
});
bean.addSerializer(LocalDateTime.class, new JsonSerializer<LocalDateTime>() {
@Override
public void serialize(
LocalDateTime localDateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws IOException {
jsonGenerator.writeString(DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(localDateTime));
}
});
return bean;
}
}
আপনার কনফিগারেশন ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:
@Import(Java8DateTimeConfiguration.class)
আপনি বসন্ত দ্বারা নির্মিত অবজেক্টম্যাপারটি যতক্ষণ ব্যবহার করছেন ততক্ষণ এটি স্থানীয় বৈশিষ্ট্য লোকালডেটটাইম এবং জোনডেটটাইম টাইমকে সিরিয়ালাইজ এবং ডি-সিরিয়ালাইজ করবে।
জোনডেটটাইম টাইমের জন্য আপনি যে ফর্ম্যাটটি পেয়েছেন তা হ'ল: লোকালডেটটাইমের জন্য "2017-12-27T08: 55: 17.317 + 02: 00 [এশিয়া / জেরুজালেম]": "2017-12-27T09: 05: 30.523"
@JsonSerialize(using = LocalDateTimeSerializer.class)
...