préambule strong> Par défaut, le sérialiseur JSON prend en charge la norme ISO DateTime par le moyen du avec une personnalisation supplémentaire que nous pouvons Forcer que tous les DateTimes sont dans utuc ( http://www.asp.net/web-api/overview/Formats-and-model-binding/json-and-xml-séralisation ) P> isodatetémeconverter code> p>
jsonFormatter.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc
3 Réponses :
Je viens d'examiner le code Json.net et je suis impossible que ce n'est pas possible (ou au moins extrêmement difficile en raison de la nécessité de remplacer ci-dessous sont des liens vers des endroits où la magie est Hapning: P>
jsontextreader code> /
jsontextwriter code>) pour échouer Si le suffixe de décalage de la zone de temps est omis. Tous les codes liés à l'analyse et en sérialisant divers types de données sont internes. P>
regarder la spécification. Les temps de la date ne dénotant pas le décalage du fuseau horaire doivent être supposés être une heure locale: p>
Si aucune information de relation UTC n'est fournie avec une représentation temporelle, Le temps est supposé être en heure locale. Alors qu'il peut être sûr de supposons que l'heure locale lors de la communication dans le même fuseau horaire, il est ambigu lorsqu'il est utilisé pour communiquer sur différentes fuseaux horaires. Ce est généralement préférable d'indiquer un fuseau horaire (concepteur de zone) en utilisant la notation de la norme. - Wikipedia p> blockQuote>
Il serait donc préférable de s'en tenir à une norme convenue. Par conséquent, la mise en œuvre strictement de la norme signifie que je devrais permettre que le fuseau horaire décalage soit laissé de côté. P>
Le titre de cette question devrait dire "strictement appliquant C'est parce que ISO 8601 en fait ne nécessite pas le concepteur de la zone temporelle dans les valeurs a>. Le format qui nécessite qu'il est RFC 3339 Date-Time A >. RFC 3339 est un sous-ensemble d'ISO8601 et est également celui utilisé largement sur Internet (Schema JSON, Openapi), qui est également l'objectif de la RFC 3339: dans leurs propres mots, le format "doit être utilisé dans de nouveaux protocoles sur Internet " em> et la justification détaillée est que " car l'interprétation d'un fuseau horaire local non qualifié échouera dans environ 23/24 du globe, les problèmes d'interopérabilité de l'heure locale non qualifiée sont jugés inacceptables pour Internet. . " em> p>
Quant à la solution pour la bibliothèque JSON de Newtonsoft JSON (et par conséquent ASP.NET et le nombreux cadre qui l'utilisent de nos jours), j'ai soulevé Le numéro n ° 1631 à suivre à la suite de la recommandation RFC 3339 plus simple, mais, pour l'instant, un doit avoir recours à la rédaction de son propre convertisseur de date de date . P>