如何在java中将日期格式转换为不同的日期格式?

时间:2012-02-06 14:17:26

标签: java sql database date

我想将日期格式转换为其他格式:

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)无法在数据库查询中解析

由于

2 个答案:

答案 0 :(得分:0)

Dateformat用于将字符串解析为java日期类型或输出日期对象为具有特定模式的文本。

在您的情况下,您需要查询的Date对象,而不是String。

此代码适合您吗?

 return template
                    .queryForInt(
                            "SELECT COUNT(TRANSDATE) FROM stockdata WHERE TRANSDATE= ? AND symbolname = ?",
                            rowMapper,date, SymbolName);

答案 1 :(得分:0)

我猜你正在使用Spring的JdbcTemplate。为什么不绑定java.sql.Datejava.sql.Timestamp而不是格式化?

<强>更新

我不知道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);