3

Eclipse Juno、GWT、および Java を使用しています。

変換すると

次の方法で日付を取得します。

dateBoxDOB = new DateBox();
dateBoxDOB.setFormat(new DefaultFormat(DateTimeFormat.getFormat("dd-MM-yyyy")));
flexTable.setWidget(0, 1, dateBoxDOB);
dateBoxDOB.getDatePicker();

1961 年 4 月 20 日を入力します。次に、MySQL に保存java.util.dateする前に から に変換する必要があります。java.sql.date

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 util1962-08-04 for sqlです。

正しい日付を取得するにはどうすればよいですか (つまり、SQL 日付から 1961-04-20)。

また、日付が null の場合は例外がスローされます。どうすればこれを回避できますか?

4

2 に答える 2

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));
于 2013-06-27T05:19:31.417 に答える
2

このコードは私にとってはうまくいきます。

dd-MM-yyyyフォーマットを定義し、日付を 20/04/1961 と入力したため、この問題が発生しています。「-」と「/」のフォーマットの変更に注意してください。

于 2013-06-27T12:10:23.417 に答える