java 获取两个日期的天数间隔
java 获取两个日期的天数间隔
主要使用 java8 的
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
package com.example.books.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Date;
public class DateTimeUtil {
/**
* 时间戳转日期时间
* @param s
* @return
*/
public static Date stampToDate(String s){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long lt = new Long(s);
return new Date(lt);
}
/**
* 计算现在到某一个日期的间隔天数
* @param endDate
* @return
*/
public static long currentToEnd(Date endDate){
String[] currentStr = new SimpleDateFormat("yyyy-MM-dd").format(new Date()).split("-");
String[] endStr = new SimpleDateFormat("yyyy-MM-dd").format(endDate).split("-");
Integer currentYear = Integer.parseInt(currentStr[0]);
Integer currentMonth = Integer.parseInt(currentStr[1]);
Integer currentDay = Integer.parseInt(currentStr[2]);
Integer endYear = Integer.parseInt(endStr[0]);
Integer endMonth = Integer.parseInt(endStr[1]);
Integer endDay = Integer.parseInt(endStr[2]);
LocalDate endLocalDate = LocalDate.of(endYear,endMonth,endDay);
return LocalDate.now().until(endLocalDate,ChronoUnit.DAYS);
}
/**
* 计算两个日期之间的间隔天数
* @param startDate
* @param endDate
* @return
*/
public static long startToEnd(Date startDate, Date endDate){
String[] startStr = new SimpleDateFormat("yyyy-MM-dd").format(startDate).split("-");
String[] endStr = new SimpleDateFormat("yyyy-MM-dd").format(endDate).split("-");
Integer startYear = Integer.parseInt(startStr[0]);
Integer startMonth = Integer.parseInt(startStr[1]);
Integer startDay = Integer.parseInt(startStr[2]);
Integer endYear = Integer.parseInt(endStr[0]);
Integer endMonth = Integer.parseInt(endStr[1]);
Integer endDay = Integer.parseInt(endStr[2]);
LocalDate endLocalDate = LocalDate.of(endYear,endMonth,endDay);
LocalDate startLocalDate = LocalDate.of(startYear,startMonth,startDay);
return startLocalDate.until(endLocalDate,ChronoUnit.DAYS);
}
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = null;
try {
startDate = sdf.parse("2018-09-01 15:42:55");
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("currentToEnd:"+DateTimeUtil.currentToEnd(startDate));
}
}
还没有评论,来说两句吧...