从开始时间到结束时间内,间隔多少hours?(保留1位小数)

import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;


public class test{
	public static void main(String[] args) {
		String startTime = "2018-10-01 05:57:23";
		String endTime = "2018-10-01 07:17:23";
		double hours = 0;	
		try {
			hours = caculateTotalTime(startTime,endTime);
			
		} catch (ParseException e) {
			e.printStackTrace();
		}
		System.out.println("间隔:"+hours+"小时");
	}
	
	public static double caculateTotalTime(String startTime,String endTime) throws ParseException{
		SimpleDateFormat formatter =   new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
		Date date0 = formatter.parse(startTime);
		Date date1=  formatter.parse(endTime);
		
	    long ts0 = date0.getTime();	 //getTime()返回共 多少毫 秒。x/1000=?秒; 继续 x/60=?分; 继续 x/60=?小时; 继续 x/24=?天; 继续 x/360=?年 !!!
		long ts1 = date1.getTime();
		double ts2=ts1-ts0;
		
		double totalTime = 0;
		totalTime=(ts2/(3600*1000));	
		
		
		String st = null;	//String 基本类型,被final定义,所以必须初始化
		DecimalFormat df=new DecimalFormat(".#");	//保留1位小数
		st=df.format(totalTime);	
		
		return Double.parseDouble(st);			
	}
	
	/*
	 * 方法二(只计算hour):
	 * 
	 * 	SimpleDateFormat formatter =   new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
		Date date1 = formatter.parse(startTime);
		Date date2 =  formatter.parse(endTime);
	 	Calendar rightNow = Calendar.getInstance();
	 	rightNow.setTime(date1); 
	 	int h1=rightNow.get(rightNow.HOUR_OF_DAY);
	 	rightNow.setTime(date2); 
	 	int h2=rightNow.get(rightNow.HOUR_OF_DAY);
	 	System.out.println(h1+" "+h2);
	 	return h2-h1;	 	
	 */
}

猜你喜欢

转载自blog.csdn.net/Lihua_hua/article/details/84103311
今日推荐