简体   繁体   English

如何使用Java计算数据库与当前日期之间的天数差异

[英]How to calculate difference in days between the one from database and current date using java

I retrieve the date from database (using mysql) 我从数据库中检索日期(使用mysql)

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

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

and also get a present date 并得到现在的日期

LocalDate today = LocalDate.now(); 

However I didn't find how to calculate the difference in days between those two. 但是我没有找到如何计算这两者之间的天差。 How it can be done? 怎么做? By 'difference' I mean that if I have the following two: 2018-05-25" and "2018-05-24" I will get 1. “差异”是指如果我具有以下两个:2018-05-25“和” 2018-05-24“我将得到1。

You mean : 你的意思是 :

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

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

LocalDate dateSS = LocalDate.now();

Then you can Get difference between them : 然后,您可以得到它们之间的区别:

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

Or : 要么 :

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

Don't use java.sql.Date . 不要使用java.sql.Date Don't use java.util.Date . 不要使用java.util.Date Both classes are long outdated. 这两类都已经过时了。 Also don't use any conversions. 也不要使用任何转换。 Get a LocalDate from the database: 从数据库获取LocalDate

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

This requires at least Java 8 and at lease JDBC 4.2. 这至少需要Java 8和至少JDBC 4.2。 My guess is you're long there. 我的猜测是你在那里很久。 Then proceed as in YCF_L' answer , for example: 然后按照YCF_L'的答案进行操作 ,例如:

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

Also just store a LocalDate back into your database, for example 也只需将LocalDate存储回数据库中,例如

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用Java 8的给出日期(UTC日期)和当前日期之间的差异(天) - Difference between give date (UTC date) and current date in days using Java 8 问题在java中获取未来日期和当前日期之间的天数差异 - Issue getting the days difference between future date and current date in java java.util.Date计算天数差异 - java.util.Date Calculate difference in days 计算当前日期和过去日期之间的差额 - Calculate the difference between Current Date and Past Date 如何计算饼图中显示的日期与当前日期之间的差异 - How to calculate the difference between the dates shown in the piechart with the current date python中两天之间的日期差异(从JAVA代码迁移) - Date difference between two days in python (migration from JAVA code) 如何在年龄计算器中计算输入日期和当前日期之间的确切天数? - How to calculate the exact days in Age Calculator between the date entered & the current date? 在Android上计算当前一周两天之间的时差 - Calculate the time difference between two days of current week on Android 使用 netbeans java 计算存储在 mysql 数据库中的日期与当前日期之间的天数 - Count days between dates stored in mysql database and current date with netbeans java 如何从DatePicker小部件计算两个日期之间的差异 - How to calculate difference between two date from DatePicker widget
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM