java.util.Date转换成java.sql.Date

// 获取当前的系统时间,以java.util.Date对象返回
Date dateUtil = new Date();
// 获取当前的系统时间,以时间戳返回
long l = System.currentTimeMillis();

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

Date 的构造器可以传入 long 类型的数值,这个数值就是时间戳。

保存到数据库的 Date 类型字段中,那么在 Java 中对应的日期类型必须是 java.sql.Date 类型,java.util.Date 转换成 java.sql.Date,如下所示:

java.sql.Date dateSQL = new java.sql.Date(dateUtil.getTime());

在 JDBC 中,我们将日期注入到 SQL 语句中时,需要使用 java.sql.Date 类型的,如下面的示例代码:

private static final String insert = "insert into t_project(no,name,start_date,end_date) values(?,?,?,?)";
public void add(Project project) {
    Connection con = null;
    PreparedStatement pstmt = null;
    con = ConnectionUtils.getConnection();
    try {
      pstmt = con.prepareStatement(insert);
      pstmt.setString(1, project.getNo());
      pstmt.setString(2, project.getName());
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      // project获取到的是字符串类型的日期,需要转换成java.util.Date类型
      Date startDateUtil = sdf.parse(project.getStartDate());
      // java.util.Date类型的日期无法封装到SQL中,需要转换成java.sql.Date类型
      java.sql.Date startDate = new java.sql.Date(startDateUtil.getTime());
      Date endDateofUtil = sdf.parse(project.getEndDate());
      java.sql.Date endDate = new java.sql.Date(endDateofUtil.getTime());
      pstmt.setDate(3, startDate);
      pstmt.setDate(4, endDate);
      pstmt.execute();
    } catch (SQLException e) {
      e.printStackTrace();
      throw new RuntimeException(e);
    } catch (ParseException e) {
      e.printStackTrace();
      throw new RuntimeException(e);
    } finally {
      ConnectionUtils.close(pstmt, con);
    }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值