packagecom.example.demo;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importorg.apache.log4j.Logger;public classTimeTest {private static Logger log = Logger.getLogger(TimeTest.class);public static voidmain(String[] args) {
String startTime="2019-10-26 15:27:00";
String endTime="2019-10-26 15:27:41";
log.info(startTime+"与"+endTime+"之间差"+getSecondsBetween(startTime,endTime)+"秒");//2019-9-31并不存在,这里证明SimpleDateFormat将字符串转数字不是那么让人放心
startTime="2019-9-31 00:00:00";
endTime="2019-10-01 00:00:00";
log.info(startTime+"与"+endTime+"之间差"+getSecondsBetween(startTime,endTime)+"秒");//2019-9-32也没报异常更让人担忧了
startTime="2019-9-32 00:00:00";
endTime="2019-10-02 00:00:00";
log.info(startTime+"与"+endTime+"之间差"+getSecondsBetween(startTime,endTime)+"秒");
startTime="2019-9-30 15:27:00";
endTime="2019-10-26 15:27:41";
log.info(startTime+"与"+endTime+"之间差"+getDaysBetween(startTime,endTime)+"天");
startTime="2019-10-26 08:00:00";
endTime="2019-10-26 15:41:41";
log.info(startTime+"与"+endTime+"之间差"+getHoursBetween(startTime,endTime)+"小时");
}/*** 两个时间之间差多少秒
*@paramstartTime
*@paramendTime
*@return
*/
public static longgetSecondsBetween(String startTime,String endTime) {
SimpleDateFormat formatter=new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");long seconds = 0L;try{
Date startDate=formatter.parse(startTime);long msStart =startDate.getTime();
Date endDate=formatter.parse(endTime);long msEnd =endDate.getTime();
seconds= ( msEnd-msStart ) / 1000;
}catch(ParseException e) {
e.printStackTrace();
}returnseconds;
}/*** 两个时间之间差多少天
*@paramstartTime
*@paramendTime
*@return
*/
public static longgetDaysBetween(String startTime,String endTime) {
SimpleDateFormat formatter=new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");long seconds = 0L;try{
Date startDate=formatter.parse(startTime);long msStart =startDate.getTime();
Date endDate=formatter.parse(endTime);long msEnd =endDate.getTime();
seconds= ( msEnd-msStart ) / (1000*60*60*24) ;
}catch(ParseException e) {
e.printStackTrace();
}returnseconds;
}/*** 两个时间之间差多少小时
*@paramstartTime
*@paramendTime
*@return
*/
public static longgetHoursBetween(String startTime,String endTime) {
SimpleDateFormat formatter=new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");long seconds = 0L;try{
Date startDate=formatter.parse(startTime);long msStart =startDate.getTime();
Date endDate=formatter.parse(endTime);long msEnd =endDate.getTime();
seconds= ( msEnd-msStart ) / (1000*60*60) ;
}catch(ParseException e) {
e.printStackTrace();
}returnseconds;
}
}