これは、同僚が遭遇した問題です。
コードの日付、ページに配置された形式は「3月21日09:20:38 CST 2014」です(次のコントローラーに渡すためだけに表示されません)。
フォームを再度送信するとき、DTOクラスのプライベートデート開始時刻。値に設定されていません。
私は地元のプログラムでいくつかの実験をしました
public static void main(string [] args){date now = new date(); system.out.println(now); string nowstr = now.toString(); dateformat format = new SimpledateFormat( "eee mmm dd hh:mm:ss z yyyy");日付parsednow = null; try {parsednow = format.parse(nowstr); System.out.println(parsednow); } catch(parseexception e){e.printstacktrace(); }}プログラムがformat.parse(nowstr)を実行するときにエラーが発生しました
java.text.parseexception:比類のない日付:「金曜日21 09:25:48 CST 2014」
java.text.dateformat.parse(dateformat.java:337)
ソースコードを分析および表示した後、システムで使用される言語によって引き起こされるエラーが結論を出します。
dateformat format = new SimpledateFormat( "eee mmm dd hh:mm:ss z yyyy");
デフォルトは実際にです
dateformat format = new SimpledateFormat( "eee mmm dd hh:mm:ss z yyyy"、new locale(system.getProperty( "user.language")));
その中で、System.getProperty( "user.language")は中国人です。システムはZHであり、この形式は中国のタイムゾーンでサポートされるべきではありません。
上記のコードを変更して、このポイントを確認します
public static void main(string [] args){date now = new date(); system.out.println(now); 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"));日付parsednow = null; try {parsednow = format.parse(nowstr); System.out.println(parsednow); } catch(parseexception e){format = new simpledateFormat( "eee mmm dd hh:mm:ss z yyyy"、locale.english); try {System.out.println( "new Format by 'en'"); system.out.println(format.parse(nowstr)); } catch(parseexception e1){e1.printstacktrace(); }}}別のソリューションは、JSPページで一度日付形式を変換することです。
<入力型= "hidden" name = "data" value = '<fmt:formatdate value = "$ {dto.date}" pattern = "yyyy-mm-dd"/>'/>上記はこの記事のすべての内容です。この記事の内容が、すべての人の勉強や仕事に役立つことを願っています。また、wulin.comをもっとサポートしたいと思っています!