1

ここに画像の説明を入力

ここに画像の説明を入力

わかりましたので、ユーザーに日付を入力してもらいます。これは、 em.createQueryを使用して Java で照会されます。スクリーンショットからわかるように、入力データはpattern="dd-MMM-yy (サーバーに格納されている方法) として入力されていますが、パターン タグなしでこれを試してみましたが、まだ機能しません。 . 実際のエラーはsetQueryParams(q)にありますが、私はそれが何であるかを理解することができませんでした. 誰が私がどこを見ているのか考えを持っていますか?ありがとう.

4

2 に答える 2

1

私はマットbに同意します。文字列を指定していて、日付を期待しているようです(ただし、スクリーンショットのテキストを読むのは難しいです)。SimpleDateFormatを見て、「parse」メソッドを使用して文字列からDateオブジェクトを派生させます。

編集:

日付は次のような文字列形式になっているようです。

2013年1月1日火曜日00:00:00EST

その形式の文字列を解析する必要があるコードは次のとおりです。

public static void main(String[] args) {

    String dateString = "Tue Jan 01 00:00:00 EST 2013";
    SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy");
    try {
        Date date = format.parse(dateString);
        System.out.println(date.toString());
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

ログステートメントを見ても、角かっこが文字列の一部であるかどうかはわかりません。角かっこをフォーマットに含める必要がある場合は、次のようにします。

SimpleDateFormat format = new SimpleDateFormat("[EEE MMM dd hh:mm:ss z yyyy]");

ここに正確な日付文字列がないことに注意してください。そのため、画像からの文字列の転記を間違えた可能性があります。文字列qの正確な形式を取得するには、ブレークポイントまたはprintステートメントを使用します。

もちろん、これはすべて、qが文字列であるという仮定の下にあります。ログに基づくと、そのように思われます。

于 2013-01-17T17:35:06.087 に答える
1

あなたは私たちに何が何であるかを示していませんが、 aが期待される場所qを与えているようです。java.lang.Stringjava.util.Date

また、次のような文字列を書くとどうなりますか

queryStr += " and c." + "dateCreated" + " >=:" + ...

? それは維持/読むのが苦痛のように見えます。

于 2013-01-17T17:28:14.480 に答える