从属性的经典java.util.Date类型“迁移”到等效的java.time类型

时间:2019-04-20 17:29:25

标签: java datetime java-time java.util.date java.time

什么是合适的类型来声明表示数据库中DATETIME字段的date属性。

该问题的目的是查看我是否可以在我当前正在构建的实体的Date属性中使用java.time而不是java.util.Date,因为某些java.util.Date方法已弃用,通常建议使用java.time

1 个答案:

答案 0 :(得分:1)

对于带有时间的sshParameters.setHostKeyVerifier(HostKeyVerificationService.NULL); 值,如果您曾经使用过JDBC类型java.sql.Date,请使用java.time.LocalDate。有一些方法可以帮助转换:

DATE

对于您使用过JDBC类型java.sql.TimestampLocalDate localDate = sqlDate.toLocalDate(); Date sqlDate = Date.valueOf(localDate); / TIMESTAMP值,这取决于您是否需要考虑时区。

如果应用程序,其用户和数据库都在同一时区,则可以使用java.time.LocalDateTime。有一些方法可以帮助转换:

DATETIME

如果用户处于多个时区,则应始终将值保存到UTC中,因此应使用java.time.Instant。有一些方法可以帮助转换:

LocalDateTime localDateTime = timestamp.toLocalDateTime();

Timestamp timestamp = Timestamp.valueOf(localDateTime);

然后您可能希望转换为用户的本地时区进行显示,例如:

Instant instant = timestamp.toInstant();

Timestamp timestamp = Timestamp.from(instant);