如何使用java将当前日期和时间保存到数据库?

时间:2013-03-04 23:02:05

标签: java sql java-ee datetime

我使用以下代码获取当前日期和时间,但输出不是我所期望的,我无法将其保存到数据库中。

输出>> Current:Tue Mar 05 09:58:26 EST 2013

预期输出>>当前:2013-03-05 9:58:26

 .....{  
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date();
        try {
            System.out.println("current: " +parseFormat.parse(dateFormat.format(date)));
            return parseFormat.parse(dateFormat.format(date));
        } catch (ParseException ex) {
            Logger.getLogger(ConstructionModel.class.getName()).log(Level.SEVERE, null, ex);
        }
        return date;
     }
        ......

        ps.setDate(....) <<< failed

数据库

 name   type
 mydate Date

3 个答案:

答案 0 :(得分:3)

格式化之前无需解析:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = new Date();

String frmtdDate = dateFormat.format(date);

System.out.println("frmtdDate: " + frmtdDate);

但是,如果您尝试将日期放入某个DB语句中,则不应以文本形式进行,而应使用其中一个使用java.sql.Datejava.sql.Timestamp <的JDBC setter / p>

答案 1 :(得分:2)

您需要使用sql时间戳来保存到数据库。将您的java.util.Date转换为java.sql.Timestamp

ps.setTimestamp(new java.sql.Timestamp(myDate.getTime()));

答案 2 :(得分:2)

format获取Date并返回格式化的Stringparse采用格式化的String并返回Date个对象。执行parseFormat.parse(dateFormat.format(date))后,您正在将Date转换为String再转换为Date。打印的值是Date.toString()而不是格式化字符串提供的默认表示。

       System.out.println("current: " +dateFormat.format(date));