Comment sérialiser LocalDateTime avec Jackson?
J'ai eu le morceau de code suivant:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
String now = new ObjectMapper().writeValueAsString(new SomeClass(LocalDateTime.now()));
System.out.println(now);
Et j'obtiens ceci:
{"time":{"hour":20,"minute":49,"second":42,"nano":99000000,"dayOfYear":19,"dayOfWeek":"THURSDAY","month":"JANUARY","dayOfMonth":19,"year":2017,"monthValue":1,"chronology":{"id":"ISO","calendarType":"iso8601"}}}
Ce que je veux réaliser est une chaîne de caractères dans ISO8601
2017-01-19T18:36:51Z
Serait quelque chose comme ce travail: DateFormat df = new SimpleDateFormat("dd/MM/yy hh:mm"); puis: mappeur.setDateFormat(df);
OriginalL'auteur user1745356 | 2017-01-19
Vous devez vous connecter pour publier un commentaire.
Cela est probablement dû à une erreur dans votre code. Vous avez été en utilisant de nouvelles non configuré instance de mappeur, voici le corrigé:
OriginalL'auteur Alexander Yanyshin
C'est ce que vous pouvez faire pour
OffsetDateTime
:Pour LocalDateTime vous ne pouvez pas utiliser XXXX (horaire décalé) car il n'y a pas de décalage de l'information. Ainsi, vous pouvez le déposer. Mais ISO8601 déconseille d'utiliser l'Heure Locale que c'est ambigu:
OriginalL'auteur Stanislav Bashkyrtsev