如何将java.sql.timestamp转换为LocalDate (java8) java.time?
在Java 8中,如何将(in)转换为(in)?Timestamp
java.sql
LocalDate
java.time
在Java 8中,如何将(in)转换为(in)?Timestamp
java.sql
LocalDate
java.time
您可以执行以下操作:
timeStamp.toLocalDateTime().toLocalDate();
请注意,将使用
Clock.systemDefaultZone()
时区进行转换。这可能是也可能不是你想要的。timestamp.toLocalDateTime()
接受的答案并不理想,所以我决定添加我的2美分
timeStamp.toLocalDateTime().toLocalDate();
总的来说,这是一个糟糕的解决方案,我甚至不确定为什么他们将此方法添加到JDK中,因为它通过使用系统时区进行隐式转换会使事情变得非常混乱。通常,当仅使用java8日期类时,程序员被迫指定一个时区,这是一件好事。
好的解决方案是
timestamp.toInstant().atZone(zoneId).toLocalDate()
其中 zoneId 是您要使用的时区,如果您想使用系统时区,它通常是 ZoneId.systemDefault() 或一些硬编码的时区,如 ZoneOffset.UTC
一般方法应该是