java localdate mysql_如何使用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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MySQL中,时间类型有四种,分别是DATETIME、DATE、TIME、TIMESTAMP,这些类型在Java中的转换方式如下: 1. DATETIME类型 在Java中,可以使用java.time.LocalDateTime类来表示DATETIME类型。在通过JDBC从MySQL中读取DATETIME类型的值时,可以使用ResultSet类的getTimestamp方法获取java.sql.Timestamp类型的值,然后再将其转换为java.time.LocalDateTime类型: ```java ResultSet rs = stmt.executeQuery("SELECT datetime_column FROM table"); while (rs.next()) { Timestamp timestamp = rs.getTimestamp("datetime_column"); LocalDateTime datetime = timestamp.toLocalDateTime(); // ... } ``` 在将java.time.LocalDateTime类型的值写入到MySQLDATETIME类型的字段时,可以使用PreparedStatement类的setTimestamp方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (datetime_column) VALUES (?)"); LocalDateTime datetime = LocalDateTime.now(); Timestamp timestamp = Timestamp.valueOf(datetime); pstmt.setTimestamp(1, timestamp); pstmt.executeUpdate(); ``` 2. DATE类型 在Java中,可以使用java.time.LocalDate类来表示DATE类型。在通过JDBC从MySQL中读取DATE类型的值时,可以使用ResultSet类的getDate方法获取java.sql.Date类型的值,然后再将其转换为java.time.LocalDate类型: ```java ResultSet rs = stmt.executeQuery("SELECT date_column FROM table"); while (rs.next()) { Date date = rs.getDate("date_column"); LocalDate localDate = date.toLocalDate(); // ... } ``` 在将java.time.LocalDate类型的值写入到MySQLDATE类型的字段时,可以使用PreparedStatement类的setDate方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (date_column) VALUES (?)"); LocalDate localDate = LocalDate.now(); Date date = Date.valueOf(localDate); pstmt.setDate(1, date); pstmt.executeUpdate(); ``` 3. TIME类型 在Java中,可以使用java.time.LocalTime类来表示TIME类型。在通过JDBC从MySQL中读取TIME类型的值时,可以使用ResultSet类的getTime方法获取java.sql.Time类型的值,然后再将其转换为java.time.LocalTime类型: ```java ResultSet rs = stmt.executeQuery("SELECT time_column FROM table"); while (rs.next()) { Time time = rs.getTime("time_column"); LocalTime localTime = time.toLocalTime(); // ... } ``` 在将java.time.LocalTime类型的值写入到MySQL的TIME类型的字段时,可以使用PreparedStatement类的setTime方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (time_column) VALUES (?)"); LocalTime localTime = LocalTime.now(); Time time = Time.valueOf(localTime); pstmt.setTime(1, time); pstmt.executeUpdate(); ``` 4. TIMESTAMP类型 在Java中,可以使用java.time.LocalDateTime类来表示TIMESTAMP类型。在通过JDBC从MySQL中读取TIMESTAMP类型的值时,可以使用ResultSet类的getTimestamp方法获取java.sql.Timestamp类型的值,然后再将其转换为java.time.LocalDateTime类型: ```java ResultSet rs = stmt.executeQuery("SELECT timestamp_column FROM table"); while (rs.next()) { Timestamp timestamp = rs.getTimestamp("timestamp_column"); LocalDateTime datetime = timestamp.toLocalDateTime(); // ... } ``` 在将java.time.LocalDateTime类型的值写入到MySQL的TIMESTAMP类型的字段时,可以使用PreparedStatement类的setTimestamp方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (timestamp_column) VALUES (?)"); LocalDateTime datetime = LocalDateTime.now(); Timestamp timestamp = Timestamp.valueOf(datetime); pstmt.setTimestamp(1, timestamp); pstmt.executeUpdate(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值