Java中如何实现java.sql.Date和LocalDate相互转换

后端 潘老师 6个月前 (10-31) 174 ℃ (0) 扫码查看

在Java中,日期主要由3个类表示:

  • java.time.LocalDate:这是Java 8日期时间API的一部分。它只包含日期部分(日、月、年),不包含时间部分(小时、分钟和秒)。
  • java.util.Date:这是Java 8版本之前使用的传统类。它包含了日期和时间部分。它存储自纪元(1970年1月1日,格林威治标准时间00:00:00)以来的毫秒数。
  • java.sql.Date:这也是一个传统类,是java.util.Date的子类。它是专门为通过JDBC API与数据库一起工作而设计的。它可以作为SQL日期使用,并在Java和SQL数据库之间传递日期而不会丢失时间信息。它重写了java.util.Date的方法,只处理日期部分,有效地将时间组件设置为午夜(00:00:00)。

在本教程中,我们将学习如何实现java.sql.Date和LocalDate相互转换

1. java.sql.Date 如何转为 LocalDate

使用java.sql.Date.toLocalDate()方法从java.sql.Date获取LocalDate。

在下面的例子中,我们首先创建一个java.sql.Date的实例。在我们的应用程序中,我们可以从数据库获取它。接下来,我们调用sqlDate.toLocalDate()来获取LocalDate实例。

//获取 SQL date 实例
java.sql.Date sqlDate = new java.sql.Date(new Date().getTime());
//基于 SQL date获取LocalDate实例
LocalDate localDate = sqlDate.toLocalDate();
System.out.println( localDate );    //2023-10-31

2.LocalDate如何转换为java.sql.Date

使用java.sql.Date.valueOf()方法从LocalDate获取SQL日期。

在下面的例子中,我们首先创建一个java.time.LocalDate的实例。在我们的应用程序中,我们可以从某个方法中获得它或者自己创建。接下来,我们调用sqlDate.valueOf()来获取Date实例。请注意,valueOf()是一个静态方法,因此可以直接从类引用中调用。

//Local date 实例
LocalDate localDate = LocalDate.now();
//转为sqlDate
java.sql.Date sqlDate = java.sql.Date.valueOf( localDate );
System.out.println( sqlDate );  //2023-10-31

以上就是Java中如何实现java.sql.Date和LocalDate相互转换的全部内容。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/10533.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】