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



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

输出>>电流: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

格式化前不需要解析:

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设置程序之一

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

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

format接受Date并返回格式化的Stringparse接受一个格式化的String并返回一个Date对象。当您执行parseFormat.parse(dateFormat.format(date))时,您将Date转换为String并再次转换为Date。输出的值是Date.toString()提供的默认表示形式,而不是格式化的字符串。

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

相关内容

  • 没有找到相关文章

最新更新