1

休止状態の新しいIm

hibernateとstruts2を使用して小さなアプリケーションを作成します

私の問題は

日時を更新すると、時刻は00:00:00または12:00:00になり、04:50:10または18:20:11のように選択したものに正しくなりません。

何度も試しますが、うまくいかないまで

私のフォームでは、フィールドが文字列であり、それを日付に変換してから、休止状態で更新します

私の変換コード

public Date convertStringToDate(String str) {
        Date date = null;
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
        try {
            date = formatter.parse(str);
        } catch (ParseException ex) {
            Logger.getLogger(NewsAdminAction.class.getName()).log(Level.SEVERE, null, ex);
        }
        return date;
    }

    public String convertDateToString(Date date) {
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
        String str = formatter.format(date);
        return str;
    }

私の更新コードは休止状態です

//create session begin transaction

    String sqlNoThumb = "UPDATE News set title = :title, info = :info, publicdate = :publicdate, active = :active, titleviet = :titleviet where idnews = :idnews";

    Query query = session.createQuery(sqlNoThumb);
                    query.setString("title", news.getTitle());
                    query.setString("info", news.getInfo());
                    query.setDate("publicdate", news.getPublicdate());
                    query.setInteger("active", news.getActive());
                    query.setString("titleviet", news.getTitleviet());
                    query.setInteger("idnews", news.getIdnews());
                    result = query.executeUpdate();
4

1 に答える 1

3

を使用する必要がありますがjava.sql.Timestampjava.sql.Date

JavaDocsから

SQL DATEの定義に準拠するには、java.sql.Dateインスタンスによってラップされるミリ秒値を、時、分、秒、およびミリ秒をゼロに設定して「正規化」する必要があります。

于 2012-11-21T12:25:45.233 に答える