0

に変換する単純な関数がありdateますjava.sql.date

public static java.sql.Date getSqlDate(String dateStr, String format) {
    java.sql.Date dt = null;
    Date date;
    SimpleDateFormat df = new SimpleDateFormat(format);
    ParsePosition pos = new ParsePosition(0);
    date = df.parse(dateStr, pos);
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    dt = java.sql.Date.valueOf(cal.get(cal.YEAR) + "-" + (cal.get(cal.MONTH)+1)
            + "-" + cal.get(cal.DATE));
    return dt;
}

問題は、次のようにこの関数を呼び出すと、IllegalArgumentException.

"2008-02-04", "yyyy-dd-MM"

コード内のエラーを検出できない可能性があるため、これを別の目で調べて修正してもらいたいと考えています...

-- M

4

2 に答える 2

2

試す、

java.util.Date dt = null;
SimpleDateFormat df = new SimpleDateFormat(format);
ParsePosition pos = new ParsePosition(0);
date = df.parse(dateStr, pos);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
于 2012-07-02T12:26:48.290 に答える
1

そうではないはずです:

dt = java.sql.Date.valueOf(cal.get(cal.YEAR) + "-" + cal.get(cal.DATE)  + "-" +(cal.get(cal.MONTH)+1));

コード例が yyyy-mm-dd 形式を示しているため、yyyy-dd-mm 形式に同意するには:

cal.get(cal.YEAR) + "-" + (cal.get(cal.MONTH)+1) + "-" + cal.get(cal.DATE)
于 2012-07-02T12:17:53.313 に答える