2009-09-11 18 views
8

Klient JavaScript wysyła pewne ciągi do mojego serwera, z których jeden jest w postaci reprezentacji ciągów obiektu JavaScript Date.Parsowanie ciągów znaków JavaScript w języku Java

Ten obiekt Date JavaScript ma własne formatowanie i właśnie się zastanawiałem, czy istnieje klasa, która wykonuje właściwą konwersję, ponieważ mam problemy z SimpleDateFormatter.

To jest jak JavaScript Data ciąg wygląda następująco: Tue Feb 12 2013 21:12:28 GMT+0100 (CET)

+0

Jakie są Twoje problemy z SimpleDateFormatter? –

+0

Spróbuj chwili.js, zaufaj mi, że pozbędziesz się tych wszystkich irytujących problemów. –

Odpowiedz

11

Najlepszy sposób serializować datę w javascript jest użycie toUTCString (nie tylko toString()); toUTCString wytworzy datę rfc 822 (w tym samym formacie, w jakim jest używana przez http). Następnie możesz użyć następującego wzoru SimpleDateFormat do przeanalizowania w java:

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

Jeśli nie kontrolujesz producenta daty, a używanie '.toUTCString()' nie jest opcją, możesz użyć tego formatu: '" EE MMM dy H: m: s 'GMT'Z (zz) "' –

3

Osobiście wolę Joda Time formatek dla jednego głównego powodu: są thread-safe i niezmienna, więc można założyć, utrzymać go statycznie, a użyj go ponownie bez obaw. Joda pozwala również na łatwą specyfikację stref czasowych itp. Oczywiście, w efekcie powstają obiekty Joda, co jest kolejnym atutem IMO - staram się unikać interfejsu API daty/czasu Javy, gdzie tylko jest to możliwe.

Powiedziawszy to, musielibyśmy wiedzieć więcej na temat formatu, który próbujemy analizować, i co poszło nie tak z SimpleDateFormatter. (Zasadą jest, że jeśli "doświadczasz problemów" z czymś i chcesz naprawić te problemy, pomocne jest opisanie problemów, najlepiej przy pomocy krótkiego, ale kompletnego programu do zademonstrowania problemu.)

Powiązane problemy