如何使用JDBC从java.sql.Date获取LocalDateTime对象?

Java8的java.time包提供了一个名为LocalDateTime的类,用于获取本地日期和时间的当前值。 除日期和时间值外,还可以使用此字段来获取其他日期和时间字段,例如,一年中的某天,一周中的某天和一年中的某周。

将java.sql.Date转换为LocalDateTime

java.sql.TimeStamp类提供了一个名为toLocalDateTime()的方法,该方法将当前时间戳对象转换为LocalDateTime对象并返回它。

将日期转换为LocalDateTime对象。

  • 使用以下getTime()方法从Date对象创建一个Timestamp对象:

Date date = rs.getDate("DispatchDate");

//将日期转换为时间戳

Timestamp timestamp = new Timestamp(date.getTime());

  • 现在,使用toLocalDateTime()方法将Timestamp对象转换为LocalDateTime对象。

Time time = rs.getTime("DeliveryTime");

//将时间转换为时间戳

Timestamp timestamp = new Timestamp(time.getTime());

//时间戳记到LocalDateTime-

timestamp.toLocalDateTime();

示例

让我们使用create语句在MySQL数据库中创建一个名为dispatches的表,如下所示-

CREATE TABLE dispatches(

   ProductName VARCHAR(255),

   CustomerName VARCHAR(255),

   DispatchDate date,

   DeliveryTime time,

   Price INT,

   Location VARCHAR(255)

);

现在,我们将使用INSERT语句在dispatches表中插入2条记录-

insert into dispatches values('Key-Board', 'Raja', DATE('2019-09-01'), TIME('11:00:00'), 7000, 'Hyderabad');

insert into dispatches values('Earphones', 'Roja', DATE('2019-05-01'), TIME('11:00:00'), 2000, 'Vishakhapatnam');

随后的JDBC程序建立与数据库的连接,并检索dispatches_data表的内容,并将第一条记录的Date值(Dispatch_Date列)转换为LocalDateTime对象,并将其及其内容显示出来。

import java.sql.Connection;

import java.sql.Date;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.sql.Timestamp;

public class LocalDateTimeExample {

   public static void main(String args[]) throws SQLException {

      //注册驱动程序

      DriverManager.registerDriver(new com.mysql.jdbc.Driver());

      //获得连接

      String mysqlUrl = "jdbc:mysql://localhost/mydatabase";

      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");

      System.out.println("建立连接...-");

      //检索值

      Statement stmt = con.createStatement();

      ResultSet rs = stmt.executeQuery("select * from dispatches");

      rs.next();

      //从表中检索日期

      Date date = rs.getDate("DispatchDate");

      //将日期转换为时间戳

      Timestamp timestamp = new Timestamp(date.getTime());

      System.out.println("日期的LocalDateTime值: "+timestamp.toLocalDateTime());

      System.out.println("");

      System.out.println("第一条记录的内容: ");

      System.out.println("产品名称: "+rs.getString("ProductName"));

      System.out.println("客户名称: "+rs.getString("CustomerName"));

      System.out.println("发货日期: "+rs.getDate("DispatchDate"));

      System.out.println("交货时间: "+ rs.getTime("DeliveryTime"));

      System.out.println("Location: "+rs.getString("Location"));

      System.out.println();

   }

}

输出结果

建立连接...-

日期的LocalDateTime值: 2019-09-01T00:00

第一条记录的内容:

产品名称: Key-Board

客户名称: Raja

发货日期: 2019-09-01

交货时间: 11:00:00

Location: Hyderabad

以上是 如何使用JDBC从java.sql.Date获取LocalDateTime对象? 的全部内容, 来源链接: utcz.com/z/321509.html

回到顶部