Java8的java.time包提供了一个名为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