下面为大家详细讲解“JAVA计算两个日期相差的实例”的完整攻略。
准备工作
首先,我们需要引入Java内置的日期类——java.util.Date
和java.text.SimpleDateFormat
,其中SimpleDateFormat
类可以用于日期的格式化操作。
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateDiffDemo {
public static void main(String[] args) {
// 获取当前日期
Date now = new Date();
// 指定比较日期
Date other = new Date(2021, 5, 1);
// 格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nowStr = sdf.format(now);
String otherStr = sdf.format(other);
}
}
获取两个日期的时间戳
在进行日期的比较之前,我们需要将日期转换成时间戳,即表示某个日期的毫秒数。
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateDiffDemo {
public static void main(String[] args) {
// 获取当前日期
Date now = new Date();
// 指定比较日期
Date other = new Date(2021, 5, 1);
// 格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nowStr = sdf.format(now);
String otherStr = sdf.format(other);
// 将日期转换成毫秒数
long nowTime = now.getTime();
long otherTime = other.getTime();
}
}
计算日期差值
获取两个日期的时间戳后,即可计算其差值,通过除以1000、除以60、除以60、除以24,以获取其相差的天数。
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateDiffDemo {
public static void main(String[] args) {
// 获取当前日期
Date now = new Date();
// 指定比较日期
Date other = new Date(2021, 5, 1);
// 格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nowStr = sdf.format(now);
String otherStr = sdf.format(other);
// 将日期转换成毫秒数
long nowTime = now.getTime();
long otherTime = other.getTime();
// 计算日期差值
long diff = Math.abs(nowTime - otherTime);
long days = diff / (1000 * 60 * 60 * 24);
}
}
示例
以下是两个日期相差的实例:
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateDiffDemo {
public static void main(String[] args) {
// 获取当前日期
Date now = new Date();
// 指定比较日期
Date other = new Date(2021, 5, 1);
// 格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nowStr = sdf.format(now);
String otherStr = sdf.format(other);
// 将日期转换成毫秒数
long nowTime = now.getTime();
long otherTime = other.getTime();
// 计算日期差值
long diff = Math.abs(nowTime - otherTime);
long days = diff / (1000 * 60 * 60 * 24);
System.out.println("当前日期为:" + nowStr);
System.out.println("比较日期为:" + otherStr);
System.out.println("两个日期相差:" + days + " 天");
}
}
输出结果为:
当前日期为:2022-04-18
比较日期为:2021-06-01
两个日期相差:321 天
再来一个例子,比较今天与明天的日期差值:
import java.util.Date;
import java.text.SimpleDateFormat;
public class DateDiffDemo {
public static void main(String[] args) {
// 获取当前日期
Date now = new Date();
// 获取明天的日期
Date tomorrow = new Date(System.currentTimeMillis() + 24 * 60 * 60 * 1000);
// 格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nowStr = sdf.format(now);
String tomorrowStr = sdf.format(tomorrow);
// 将日期转换成毫秒数
long nowTime = now.getTime();
long tomorrowTime = tomorrow.getTime();
// 计算日期差值
long diff = Math.abs(tomorrowTime - nowTime);
long days = diff / (1000 * 60 * 60 * 24);
System.out.println("当前日期为:" + nowStr);
System.out.println("明天的日期为:" + tomorrowStr);
System.out.println("两个日期相差:" + days + " 天");
}
}
输出结果为:
当前日期为:2022-04-18
明天的日期为:2022-04-19
两个日期相差:1 天
希望以上内容能够解决你的问题,如果还有其他疑问,欢迎继续交流!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA计算两个日期相差的实例 - Python技术站