我正在使用Eclipse Juno,GWT和java。
当我转换
我通过以下方式获取日期:
dateBoxDOB = new DateBox();
dateBoxDOB.setFormat(new DefaultFormat(DateTimeFormat.getFormat("dd-MM-yyyy")));
flexTable.setWidget(0, 1, dateBoxDOB);
dateBoxDOB.getDatePicker();
我输入20/04/1961。然后我需要将它从java.util.date
转换为java.sql.date
,然后再保存到MySQL:
java.sql.Date sqlDOB = new java.sql.Date(dateBoxDOB.getValue().getTime());
Window.alert("Util date = " + dateBoxDOB.getValue().getTime());
Window.alert("DOB = " + sqlDOB);
java.sql.Date sqlDateArchived = new java.sql.Date(dateBoxArchived.getValue().getTime());
java.sql.Date sqlPackIn = new java.sql.Date(dateBoxPackIn.getValue().getTime());
java.sql.Date sqlPackOut = new java.sql.Date(dateBoxPackOut.getValue().getTime());
窗口提示显示的日期为-233920800000 for util
和1962-08-04 for sql
。
我如何获得正确的日期(即1961-04-20从sql日期开始)?
此外,如果日期为null并且抛出异常。我该如何解决这个问题呢?
答案 0 :(得分:2)
这可能对您有所帮助
Calendar cal = Calendar.getInstance();
DateFormat df=new SimpleDateFormat("dd/mm/yyyy");
String dateStr="20/04/1961";
Date date = df.parse(dateStr);
cal.setTime(date);
Date sqlDate = new java.sql.Date(cal.getTime().getTime());
System.out.println("utilDate:" + df.format(date));
System.out.println("sqlDate:" + df.format(sqlDate));
答案 1 :(得分:2)
此代码适用于我。
您遇到此问题是因为您将格式定义为dd-MM-yyyy
并输入日期为20/04/1961。请注意格式' - 'vs'/'。