C'est un problème que les collègues ont rencontré.
La date du code, le format placé sur la page est "ven 21 mars 09:20:38 CST 2014" (non affiché, juste pour passer au prochain contrôleur).
Lors de la soumission du formulaire à nouveau, la date privée de démarrage de la classe DTO; n'est pas défini sur la valeur.
J'ai fait quelques expériences avec des programmes locaux
public static void main (String [] args) {date now = new Date (); System.out.println (maintenant); String nowStr = NOW.TOSTRING (); DateFormat Format = new SimpledateFormat ("EEE mmm dd hh: mm: ss z yyyy"); Date parsedNow = null; essayez {parsedNow = format.parse (nowstr); System.out.println (parsedNow); } catch (parseException e) {e.printStackTrace (); }}Une erreur s'est produite lorsque le programme exécute Format.Parse (NOWSTR)
Java.Text.ParseException: Date incomparable: "ven 21 mars 09:25:48 CST 2014"
sur java.text.dateformat.parse (dateformat.java:337)
Après avoir analysé et visualisé le code source, nous tirons des conclusions que les erreurs causées par le langage utilisé par le système.
DateFormat Format = new SimpledateFormat ("EEE mmm dd hh: mm: ss z yyyy");La valeur par défaut est en fait
DateFormat Format = new SimpledateFormat ("EEE MMM DD HH: MM: SS Z YYYY", New Locale (System.GetProperty ("User.Language")));Parmi eux, System.getProperty ("User.Language") est chinois car le système est ZH, et ce format ne doit pas être pris en charge dans le fuseau horaire chinois.
Modifiez le code ci-dessus pour vérifier ce point
public static void main (String [] args) {date now = new Date (); System.out.println (maintenant); String nowStr = NOW.TOSTRING (); DateFormat Format = new SimpledateFormat ("EEE MMM DD HH: MM: SS Z YYYY", New Locale (System.GetProperty ("User.Language"))); System.out.println (System.getProperty ("User.Language")); Date parsedNow = null; essayez {parsedNow = format.parse (nowstr); System.out.println (parsedNow); } catch (paSeException e) {format = new SimpledateFormat ("eee mmm dd hh: mm: ss z yyyy", locale.english); essayez {System.out.println ("Nouveau format par 'en'"); System.out.println (Format.Parse (NOWSTR)); } catch (parseException e1) {e1.printStackTrace (); }}}Une autre solution consiste à convertir le format de date une fois dans la page JSP, comme
<input type = "HIDDEN" name = "data" value = '<fmt: formatdate value = "$ {dto.date}" pattern = "yyyy-mm-dd" />' /> Ce qui précède est tout le contenu de cet article. J'espère que le contenu de cet article sera d'une aide à l'étude ou au travail de chacun. J'espère également soutenir plus Wulin.com!