小木的学习笔记
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateDistance { /** * 两个时间之间相差距离多少天 * * @param startTimeStr 开始时间 * @param endTimeStr 结束时间 * @return 相差天数 */ public static long getDistanceDays(String startTimeStr, String endTimeStr) throws Exception { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date startDate; Date endDate; long days = 0; try { startDate = format.parse(startTimeStr); endDate = format.parse(endTimeStr); long time1 = startDate.getTime(); long time2 = endDate.getTime(); long diff; if (time1 < time2) { diff = time2 - time1; } else { diff = time1 - time2; } days = diff / (1000 * 60 * 60 * 24); } catch (ParseException e) { e.printStackTrace(); } return days; } /** * 两个时间相差距离多少天多少小时多少分多少秒 * * @param startTimeStr 开始时间 格式:2000-01-01 12:00:00 * @param endTimeStr 结束时间 格式:2021-01-01 12:00:00 * @return long[] 返回值为:{天, 时, 分, 秒} */ public static long[] getDistanceTimes(String startTimeStr, String endTimeStr) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startDate; Date endDate; long day = 0; long hour = 0; long min = 0; long sec = 0; try { startDate = format.parse(startTimeStr); endDate = format.parse(endTimeStr); long time1 = startDate.getTime(); long time2 = endDate.getTime(); long diff; if (time1 < time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); } catch (ParseException e) { e.printStackTrace(); } long[] times = {day, hour, min, sec}; return times; } /** * 两个时间相差距离多少天多少小时多少分多少秒 * * @param startTimeStr 开始时间 格式:2000-01-01 12:00:00 * @param endTimeStr 结束时间 格式:2021-01-01 12:00:00 * @return String 返回值为:xx天xx小时xx分xx秒 */ public static String getDistanceTime(String startTimeStr, String endTimeStr) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startDate; Date endDate; long day = 0; long hour = 0; long min = 0; long sec = 0; try { startDate = format.parse(startTimeStr); endDate = format.parse(endTimeStr); long time1 = startDate.getTime(); long time2 = endDate.getTime(); long diff; if (time1 < time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); } catch (ParseException e) { e.printStackTrace(); } return day + "天" + hour + "小时" + min + "分" + sec + "秒"; } }