什么是合适的类型来声明表示数据库中DATETIME
字段的date属性。
该问题的目的是查看我是否可以在我当前正在构建的实体的Date属性中使用java.time
而不是java.util.Date
,因为某些java.util.Date
方法已弃用,通常建议使用java.time
。
答案 0 :(得分:1)
对于带有时间的sshParameters.setHostKeyVerifier(HostKeyVerificationService.NULL);
值,如果您曾经使用过JDBC类型java.sql.Date
,请使用java.time.LocalDate
。有一些方法可以帮助转换:
DATE
对于您使用过JDBC类型java.sql.Timestamp
的LocalDate 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);