1558 votes

Le *droit* JSON format de Date?

J'ai vu beaucoup de normes différentes pour le JSON format de la date:

"\"\\/Date(1335205592410)\\/\""         .Net JavaScriptSerializer
"\"\\/Date(1335205592410-0500)\\/\""    .Net DataContractJsonSerializer
"2012-04-23T18:25:43.511Z"              JavaScript built-in JSON object
"2012-04-21T18:25:43-05:00"             ISO8601

Lequel est le bon? Ou mieux? Est-il une sorte de norme à ce sujet?

2498voto

funroll Points 4014

JSON lui-même ne permet pas de spécifier la façon dont les dates doivent être représentés, mais le Javascript n'.

Vous devez utiliser le format émis par Dates' toJSON méthode:

2012-04-23T18:25:43.511Z

Voici pourquoi:

  1. Il est lisible par l'homme, mais aussi succincte

  2. Il trie correctement

  3. Il inclut des fractions de secondes, ce qui peut aider à rétablir la chronologie

  4. Il est conforme à ISO8601

  5. ISO8601 a été bien établie à l'échelle internationale depuis plus d'une décennie

  6. ISO8601 est approuvé par le W3C, RFC3339, et XKCD

Cela étant dit, chaque jour de la bibliothèque jamais écrit peut comprendre "msecs depuis 1970". Donc, pour une portabilité facile, ThiefMaster est droit.

163voto

ThiefMaster Points 135805

JSON ne sait rien sur les dates. Qu'est-ce .NET n'est pas standard hack/extension.

Je voudrais utiliser un format qui peut être facilement converti en Date objet en JavaScript, c'est à dire celui qui peut être transmise à l' new Date(...). La méthode la plus simple et probablement le plus portable format de l'horodatage contenant msecs depuis 1970.

66voto

Russ Cam Points 58168

Le json spécification ne permet pas de spécifier un format pour l'échange de dates qui est pourquoi il ya tellement de façons différentes de le faire.

La meilleure façon de gérer cela en JavaScript est d'écrire un jour l'analyse de l'utilitaire de fonction pour gérer les formats attendus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X