2009-09-11 11 views
8

Un client JavaScript envoie des chaînes à mon serveur, dont l'une est sous la forme d'une représentation de chaîne de l'objet JavaScript Date.Analyse de la chaîne de date JavaScript en Java

Maintenant, cet objet Date de JavaScript a sa propre mise en forme et je me demandais juste s'il y a une classe qui fait la bonne conversion, car je rencontre des problèmes avec le SimpleDateFormatter.

Voici comment une chaîne de date JavaScript ressemble: Tue Feb 12 2013 21:12:28 GMT+0100 (CET)

+0

Quels sont vos problèmes avec SimpleDateFormatter? –

+0

Essayez moment.js, croyez-moi, vous allez vous débarrasser de tous ces problèmes ennuyeux. –

Répondre

11

pour sérialiser la date en javascript est d'utiliser toUTCString (pas seulement toString()); toUTCString produira une date rfc 822 (dans le même format qu'utilisé par http). Ensuite, vous pouvez simplement utiliser le modèle SimpleDateFormat suivant pour l'analyser en java:

new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH) 
+2

Si vous n'avez pas le contrôle du producteur de la date, et que vous n'utilisez pas '.toUTCString()', vous pouvez utiliser ce format: '" EE MMM dy H: m: s 'GMT'Z (zz) "' –

3

Personnellement, je préfère les Joda Time formatteurs pour une raison principale: ils sont thread-safe et immuable, de sorte que vous pouvez en créer un, garder statiquement, et réutilisez-le sans aucun souci. Joda permet également de spécifier facilement les fuseaux horaires, etc. Bien sûr, ils finissent par créer des objets Joda, ce qui est un autre avantage de l'IMO - j'essaie d'éviter autant que possible l'API de date/heure de Java. Cela dit, nous aurions besoin d'en savoir plus sur le format que vous essayez d'analyser, et ce qui ne va pas avec SimpleDateFormatter. (En règle générale, si vous «rencontrez des problèmes» et que vous voulez que ces problèmes soient résolus, il est utile de décrire les problèmes, idéalement avec un programme court mais complet pour démontrer le problème.)