1. 程式人生 > >java 時間計算 格式化的相關記錄(後續)

java 時間計算 格式化的相關記錄(後續)

1. String start="8:00:00"; SimpleDateFormat df=new SimpleDateFormat("HH:mm:ss"); System.out.println(df.parse(start)); 得到的是1970年的: Thu Jan 01 08:00:00 CST 1970 2. 計算相同格式的兩個時間的時間差 :如07:38-00:41,結果以XX小時XX分鐘形式輸出 private double countOverTime(String endtime,String starttime) throws ParseException{ SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");  Date end=df.parse(endtime); Date start=df.parse(starttime); long result=(long)(end.getTime()-start.getTime())/1000;  long hour=result%(24*3600)/3600; long min=result%3600/60; return hour+"小時"+min+"分鐘"; } 3. 如果給你一個時間如orderMinTime="10:15",orderMaxTime="23:30"分別計算和當前時間的時間差, (要注意不要使用1.的方法格式化,原因如1.) 正確做法如下: String[] mintimes=orderMinTime.split(":"); String[] maxtimes=orderMaxTime.split(":"); Calendar ca=Calendar.getInstance();
ca.set(Calendar.HOUR_OF_DAY, Integer.parseInt(mintimes[0])); ca.set(Calendar.MINUTE, Integer.parseInt(mintimes[1])); long min=ca.getTime().getTime(); ca.set(Calendar.HOUR_OF_DAY, Integer.parseInt(maxtimes[0])); ca.set(Calendar.MINUTE, Integer.parseInt(maxtimes[1])); long max=ca.getTime().getTime(); long bookTime=new Date().getTime();//預定時間定義為當前時間 if(bookTime>=min&&bookTime<=max) bookStatus="1";//可預訂 else bookStatus="0";//不可預訂