java - 在 LocalDate 和 sql.Date 之间转换

标签 java date java-8 java-time converters

在 Java 8(或更高版本)中,java.sql.DateLocalDate(双向)之间转换的正确方法是什么?

最佳答案

java.sql.Date 的 Java 8 版本(及更高版本)内置了对 LocalDate 的支持,包括 toLocalDatevalueOf(LocalDate) .

要从 LocalDate 转换为 java.sql.Date 你可以使用

java.sql.Date.valueOf( localDate );

并从 java.sql.Date 转换为 LocalDate:

sqlDate.toLocalDate();

时区:

LocalDate 类型不存储时区信息,而 java.sql.Date 存储。因此,在使用上述转换时,结果取决于系统的默认时区(如注释中所指出的那样)。

如果不想依赖默认时区,可以使用如下转换:

Date now = new Date();
LocalDate current = now.toInstant()
                       .atZone(ZoneId.systemDefault()) // Specify the correct timezone
                       .toLocalDate();

关于java - 在 LocalDate 和 sql.Date 之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750861/

相关文章:

java - LWJGL 3 获取光标位置

java - 有谁知道简单震动检测器的任何示例代码?

php - 计算两个月数据的差异

具有可变参数的 Java 方法,可执行操作并打印已知结果

javascript - Google Maps API V3 构建包含多个邮政编码的多边形

java - 我的倒计时只减 1 就不再减了,这是为什么?

java - 当Runtime.getRuntime().exec调用li​​nux批处理文件时找不到它的物理目录

mysql - 如何根据上个月的计算更新每个月的期初余额?

php - 如何从 MySql 的表单中转换日期

jack 的 Android 编译时间非常慢