dポイントプレゼントキャンペーン実施中!

日付のフォーマットを○年○月○日○時○分と言うふうに出力出来るようにしたいのですがうまくいきません
どうすればいいか迷っています
public BuyDataBeans date(String id) {
Connection conn = null;
try {
conn = DBManager.getConnection();
String sql ="select \r\n" +
"t_buy.id,\r\n" +
"t_buy.user_id,\r\n" +
"t_buy.total_price,\r\n" +
"t_buy.delivery_method_id,\r\n" +
"t_buy.create_date,\r\n" +
"t_buy_detail.buy_id \r\n" +
"from \r\n" +
"t_buy \r\n" +
"inner join \r\n" +
"t_buy_detail \r\n" +
"on \r\n" +
"t_buy.id = t_buy_detail.buy_id \r\n" +
"where t_buy_detail.buy_id = ?\r\n" +
"group by t_buy.id ";
PreparedStatement pStmt = conn.prepareStatement(sql);
pStmt.setString(1,id);

ResultSet rs = pStmt.executeQuery();
if (!rs.next()) {
return null;
}



Timestamp buyDate = rs.getTimestamp("create_date");


return new BuyDataBeans(buyDate);

} catch (SQLException e) {

e.printStackTrace();
} finally {

if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();

}
}
}


return null;

}
public String getFormatDate() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH時mm分");
return sdf.format(buyDate);
}

質問者からの補足コメント

  • つらい・・・

    ご回答ありがとうございます
    回答を待っている間にDate b =get.Date("create_date")に
    した所2020年01月25日00時00分となり時間が取れませんでした
    デバックしてカーソルを合わせたら2020-01-24となりました
    もう少しの所までは来ています

    違うDAOの

    while(rs.next()){
    bd.setBuyDate(rs.getTimestamp("create_date"))
    ではちゃんと表示されます

    create_dateを変数で宣言の書き方と

    Timestamp buyDate = rs.getTimestamp(System.currentTimeMillis());
    これはDAOで使うと言う事ですか??
    書き方が本当に見当が付かなくて悩んでいます

      補足日時:2020/01/26 07:55

A 回答 (1件)

create_dateはstring型変数に代入されたSQL構文の一部であり、create_dateを変数で宣言していないから、そりゃうまくいかないね。


さらに言えば、SQLで出力された日付情報が、Timestamp/Date/Calenderna等の時刻を扱う型に合っている保証もない。

例えば、

Timestamp buyDate = rs.getTimestamp(System.currentTimeMillis());

のようにシステム時刻を取得するではダメなの?
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!