นี่เป็นปัญหาที่เพื่อนร่วมงานพบ
วันที่ในรหัสรูปแบบที่วางไว้บนหน้าคือ "วันศุกร์ที่ 21 มี.ค. 09:20:38 CST 2014" (ไม่ปรากฏขึ้นเพียงแค่ส่งผ่านไปยังคอนโทรลเลอร์ถัดไป)
เมื่อส่งแบบฟอร์มอีกครั้งวันที่เริ่มต้นเวลาส่วนตัวของคลาส DTO; ไม่ได้ตั้งค่าเป็นค่า
ฉันทำการทดลองกับโปรแกรมท้องถิ่น
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {วันที่ตอนนี้ = วันที่ใหม่ (); System.out.println (ตอนนี้); String nowstr = now.toString (); รูปแบบ dateFormat = ใหม่ SimpleDateFormat ("EEE MMM DD HH: MM: SS Z YYYY"); วันที่ parsednow = null; ลอง {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 = ใหม่ SimpleDateFormat ("EEE MMM DD HH: MM: SS Z YYYY");ค่าเริ่มต้นคือจริง
รูปแบบ dateformat = ใหม่ SimpledateFormat ("eee mmm dd hh: mm: ss z yyyy", สถานที่ใหม่ (system.getProperty ("user.language")));ในหมู่พวกเขา System.getProperty ("user.language") เป็นภาษาจีนเพราะระบบคือ zh และรูปแบบนี้ไม่ควรได้รับการสนับสนุนในเขตเวลาจีน
แก้ไขรหัสด้านบนเพื่อตรวจสอบจุดนี้
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {วันที่ตอนนี้ = วันที่ใหม่ (); System.out.println (ตอนนี้); String nowstr = now.toString (); รูปแบบ dateformat = ใหม่ SimpledateFormat ("eee mmm dd hh: mm: ss z yyyy", สถานที่ใหม่ (system.getProperty ("user.language"))); System.out.println (System.getProperty ("user.language")); วันที่ parsednow = null; ลอง {parsedNow = format.parse (nowstr); System.out.println (parsednow); } catch (parseexception e) {format = new SimpledateFormat ("eee mmm dd hh: mm: ss z yyyy", locale.english); ลอง {system.out.println ("รูปแบบใหม่โดย 'en'"); System.out.println (format.parse (nowstr)); } catch (parseexception e1) {e1.printstacktrace (); -ทางออกอื่นคือการแปลงรูปแบบวันที่หนึ่งครั้งในหน้า JSP เช่น
<อินพุต type = "hidden" name = "data" value = '<fmt: formatDate value = "$ {dto.date}" รูปแบบ = "yyyy-mm-dd"/>>'/> ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะช่วยในการศึกษาหรือทำงานของทุกคน ฉันหวังว่าจะสนับสนุน Wulin.com เพิ่มเติม!