如何使用java计算数据库中的日期和当前日期之间的天数差

oknwwptz  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(381)

我从数据库中检索日期(使用mysql)

java.sql.Date dbSqlDateLastRecord = result.getDate("date");

java.util.Date LastRecord = new java.util.Date(dbSqlDateLastRecord.getTime());

还有一个现在的约会

LocalDate today = LocalDate.now();

然而,我没有找到如何计算这两者之间的天数差。如何做到这一点?所谓“差”,我的意思是如果我有以下两个:2018-05-25“和”2018-05-24“我会得到1。

vdzxcuhz

vdzxcuhz1#

你的意思是:

java.sql.Date dbSqlDateLastRecord = result.getDate("date");

//Convert java.sql.Date to LocaDate
LocalDate dateDB = dbSqlDateLastRecord.toLocalDate();

LocalDate dateSS = LocalDate.now();

然后你可以得到它们之间的区别:

import java.time.Duration;
...
long days = Duration.between(dateDB.atStartOfDay(), dateSS.atStartOfDay()).toDays();

或:

import java.time.temporal.ChronoUnit;
...
long days = ChronoUnit.DAYS.between(dateDB, dateSS);
q9rjltbz

q9rjltbz2#

不要使用 java.sql.Date . 不要使用 java.util.Date . 这两个班早就过时了。也不要使用任何转换。得到一个 LocalDate 从数据库:

LocalDate dateDB = result.getObject("date", LocalDate.class);

这至少需要Java8和JDBC4.2。我猜你在那儿待得太久了。然后按照ycf\ U l'答案进行,例如:

long days = ChronoUnit.DAYS.between(dateDB, dateSS);

也只是存储一个 LocalDate 例如,返回数据库

yourPreparedStatement.setObject(4, LocalDate.now(yourZoneId));

相关问题