取得當前系統時間
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String date=sdf.format(new java.util.Date());
想要寫個根據消耗時長來確定開始結束時間的小工具,發現Android處理時間上有點累,可能是我沒找到合適的方法吧,先把我的解決辦法貼出來,有好的解決方法還希望提醒一下:
1、根據時間字符串獲取毫秒數
private long getTimeMillis(String strTime) { long returnMillis = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm"); Date d = null; try { d = sdf.parse(strTime); returnMillis = d.getTime(); } catch (ParseException e) { Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_SHORT).show(); } return returnMillis; }
2、根據毫秒數的差值來計算時間差
- 傳入開始時間和結束時間字符串來計算消耗時長
private String getTimeExpend(String startTime, String endTime){ //傳入字串類型 2016/06/28 08:30 long longStart = getTimeMillis(startTime); //獲取開始時間毫秒數 long longEnd = getTimeMillis(endTime); //獲取結束時間毫秒數 long longExpend = longEnd - longStart; //獲取時間差 long longHours = longExpend / (60 * 60 * 1000); //根據時間差來計算小時數 long longMinutes = (longExpend - longHours * (60 * 60 * 1000)) / (60 * 1000); //根據時間差來計算分鍾數 return longHours + ":" + longMinutes; }
- 傳入結束時間和消耗時長來計算開始時間
private String getTimeString(String endTime, String expendTime){ //傳入字串類型 end:2016/06/28 08:30 expend: 03:25 long longEnd = getTimeMillis(endTime); String[] expendTimes = expendTime.split(":"); //截取出小時數和分鍾數 long longExpend = Long.parseLong(expendTimes[0]) * 60 * 60 * 1000 + Long.parseLong(expendTimes[1]) * 60 * 1000; SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy/MM/dd HH:mm"); return sdfTime.format(new Date(longEnd - longExpend)); }
