Java 日期时间方法

这里介绍java中两个Date日期对象的时间差值,分别计算它们的小时差,天数差,分钟差。这里保留2位小数的方式来实现。

以下都是可以直接运行的代码。

计算天数差 day

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import java.util.Date;

public class DateDiffDay {

    public static void main(String args[]) throws ParseException {
                String timeStr1 = "2023-01-02 13:39:59";
		String timeStr2 = "2023-01-04 22:30:11";
                Date date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timeStr1);
		Date date2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timeStr2);
		
		//计算天数差
		DecimalFormat decimalFormat = new DecimalFormat("0.00");//保留2位小数
		long time1 = date1.getTime();
                long time2 = date2.getTime();
		//需要转为double
		String days = decimalFormat.format(
                   ((double)time2 - (double) time1) / (1000 * 60 * 60 * 24)
		);
		
        System.out.println(days);
    }

}

输出:

2.37

计算小时差 hour

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import java.util.Date;

public class DateDiffHour {

    public static void main(String args[]) throws ParseException {
                String timeStr1 = "2023-01-03 13:39:59";
		String timeStr2 = "2023-01-03 22:30:11";
                Date date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timeStr1);
		Date date2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timeStr2);
		
		//计算小时差
		DecimalFormat decimalFormat = new DecimalFormat("0.00");//保留2位小数
		long time1 = date1.getTime();
                long time2 = date2.getTime();
		//需要转为double
		String hours = decimalFormat.format(
                      ((double)time2 - (double) time1) / (1000 * 60 * 60)
		);
		
                System.out.println(hours);
    }

}

输出:

8.84

 计算分钟差

 import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import java.util.Date;

public class DateDiffMin  {

    public static void main(String args[]) throws ParseException {
                String timeStr1 = "2023-01-02 19:39:59";
		String timeStr2 = "2023-01-02 22:30:11";
                Date date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timeStr1);
		Date date2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(timeStr2);
		
		//计算分钟差
		DecimalFormat decimalFormat = new 
                DecimalFormat("0.00");//保留2位小数
		long time1 = date1.getTime();
                long time2 = date2.getTime();
		//需要转为double
		String minutes  = decimalFormat.format(
                      ((double)time2 - (double) time1) / (1000 * 60)
		);
		
                 System.out.println(minutes );
    }

}
输出:
170.20