Feature request: DeserializationFeature.OPTIONAL_TIME_ZONE
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
Piste de recherche
Commencez par InstantDeserializer, qui gère les valeurs Instant et ZonedDateTime, et examinez DeserializationContext#getTimeZone. Déterminez comment DeserializationFeature.OPTIONAL_TIME_ZONE proposé devrait influer sur l’analyse lorsque le suffixe est absent, tout en préservant les zones explicites. C’est terminé lorsque les deux chaînes d’exemple sont désérialisées en valeurs équivalentes avec la zone de repli configurée, et que les entrées zonées existantes restent inchangées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Hi,
In our project we need to accept ISO8601 date/time strings with optional time zones, where a specific time zone is to be assumed when the time zone is omitted from the string. In our specific case, the assumed time zone would be UTC, regardless of the system's current time zone.
So both of these strings would be deserialized to the same ZonedDateTime object:
- 2018-05-22T10:29:56Z
- 2018-05-22T10:29:56
Unfortunately, the latter cannot be deserialized to a ZonedDateTime (or an Instant for that matter), due to missing (and thus ambiguous) time zone information in the input string. Doing so would result in the following error:
java.lang.IllegalArgumentException: Cannot deserialize value of type `java.time.ZonedDateTime` from String "2018-05-22T10:29:56": Text '2018-05-22T10:29:56' could not be parsed at index 19
However, the specification that we are implementing in our project clearly states that the time zone of the string is supposed to be optional and if omitted, should be assumed to be UTC.
Currently, there is no way for us to tell Jackson to handle the input that way. And deserializing to LocalDateTime instead of ZonedDateTime would not be acceptable either, since that way, any explicitly specified time zone information would be ignored on deserialization.
What would really help here is a specific deserialization feature, named something like DeserializationFeature.OPTIONAL_TIME_ZONE. If enabled, the InstantDeserializer (used for deserializing to both Instant values and ZonedDateTime values) would then treat the time zone suffix (regardless of the notation, whether "Z", "+2:00" or whatever) as optional and assume the value of DeserializationContext#getTimeZone as the time zone when parsing temporal date/time input.
Perhaps there is an obvious existing way to solve this problem, but so far, I was unable to find it. If so, please let me know.
If not, could this proposed DeserializationFeature perhaps be implemented? Thank you kindly for considering this.
- Langage dominant
- Java
- Étoiles
- 426
- Forks
- 128
- Merge moyen
- 19 min
- PR mergées (30 j)
- 1
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de FasterXML/jackson-modules-java8
-
Validate embedded objects for `ZoneId`, `Period`and `ZoneOffset`Peut-être pris @lux-liang l’a pris il y a 23 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
-
Wrap `DateTimeException`Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
FasterXML/jackson-modules-java8#382 · 3 commentaires ·
-
date-time-config
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
FasterXML/jackson-modules-java8#374 · 31 commentaires · 1 réaction ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
FasterXML/jackson-modules-java8#310 · 1 commentaire ·
-
Instants get not deserialized as expected sometimes (millis vs nanos, non-fractional numbers)Ouvertetest-needed
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
FasterXML/jackson-modules-java8#304 · 3 commentaires ·
Toutes les issues de FasterXML/jackson-modules-java8
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
NationalSecurityAgency/ghidra#9884 ·
Les mainteneurs répondent en général sous 2 jours
-
Status: Pending Review Type: Feature Request
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
OpenRefine/OpenRefine#8019 ·
Les mainteneurs répondent en général sous 1 jour
-
`timer` rule rejects dates the engine acceptsPeut-être pris @MFA-G l’a pris aujourd’hui. Ouvertebug ready
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
camunda/bpmnlint-plugin-camunda-compat#281 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
status: waiting-for-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100