どのように日付形式をjavaで別の日付形式に変換するのですか?

私は、日付形式を別の形式に変換したい:

try {
    System.out.println("try block tai asche naki ?" + stockData.getTRANSDATE());
    SimpleDateFormat inFmt = new SimpleDateFormat("yyyyMMddHHmmss");
    SimpleDateFormat outFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    date = inFmt.parse(stockData.getTRANSDATE().toString());
    System.out.println("conversion" +inFmt.parse(stockData.getTRANSDATE().toString()) );

    System.out.println("old date format ?" + date);
    //date1 = outFmt.format(date);
    System.out.println("new date format "+ outFmt.format(date));
    return template
    .queryForInt(
        "SELECT COUNT(TRANSDATE) FROM stockdata
         WHERE TRANSDATE= ? AND symbolname = ?",
    rowMapper,outFmt.format(date), SymbolName);
} 

私はそれが動作していないSQLクエリでそれを使用したい dbをoutFmt.format(date)として使用できるように、日付を変換する方法を教えてください。DB問合せで解決できません。

ありがとう

0
例外はありますか? (または、さらに質問ですか?)
追加された 著者 nicholas.hauschild,

2 答え

私はあなたがSpringのJdbcTemplateを使用していると推測しています。書式化するのではなく、 java.sql.Date または java.sql.Timestamp をバインドするだけです。

UPDATE:

stockData.getTRANSDATE()の内容はわかりませんが、 Timestamp に変換するには、

Timestamp date = new TimeStamp(
  inFmt.parse(stockData.getTRANSDATE().toString()).getTime());

次に、フォーマットせずにバインド値としてSpringに渡します。

return template
    .queryForInt(
        "SELECT COUNT(TRANSDATE) FROM stockdata
         WHERE TRANSDATE= ? AND symbolname = ?",
    rowMapper, date, SymbolName);
0
追加された
@アトリトラ:どう思う?
追加された 著者 Lukas Eder,
@アリータ:答えを更新しました。しかし、あなたは将来自分で1-2のものを試してみるべきです
追加された 著者 Lukas Eder,
タイムスタンプは、結果セットを使用するときにのみ機能します...そうですか?
追加された 著者 Aritra,
上記のコードでタイムスタンプを使用する方法は?
追加された 著者 Aritra,

Dateformatは、文字列をJavaに解析するためのものです。Date型は、特定のパターンのテキストを日付型または出力するオブジェクトです。

あなたの場合、クエリではなく文字列であるDateオブジェクトが必要です。

このコードはあなたのために働いていますか?

 return template
                    .queryForInt(
                            "SELECT COUNT(TRANSDATE) FROM stockdata WHERE TRANSDATE= ? AND symbolname = ?",
                            rowMapper,date, SymbolName);
0
追加された
Springの JdbcTemplate java.util.Date を受け入れますか?それは問題かもしれません...
追加された 著者 Lukas Eder,
@Aritraあなたはあなたのクエリのためのバインディングパラメータです。日付形式がyyyymmddかddmmyyyyかは気にしません。 TRANSDATEにバインドしようとしているオブジェクトがjavaのDate型であればOKです。 btw、列TRANSDATEのデータベースではどのデータ型を定義していますか? DATEまたはDATETIMEですか?
追加された 著者 Kent,
もし私が日付を取ったら、 "yyyy-MM-dd HH:mm:ss" フォーマットではなく yyyyMMddHHmmss
追加された 著者 Aritra,
@ DENTTIMEをデータベースに保存しました。
追加された 著者 Aritra,