2015-09-04 126 views
0

我試圖計算一個API返回給我的時間和當前設備時間之間的差異。剩餘時間計算android總是一個小時錯

的API返回的時間格式爲: 「game_start」: 「2015年9月3日19:00:00」

要計算我做到這一點的區別:

protected String getTimeToStart(JSONObject jsonObject) { 

    String time = ""; 
    Calendar startTime; 
    Calendar current; 

    startTime = Calendar.getInstance(); 
    current = Calendar.getInstance(); 

    try { 
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     SimpleDateFormat format2 = new SimpleDateFormat("HH mm "); 

     startTime.setTime(format.parse(jsonObject.getJSONObject("data").getJSONObject("game").getString("game_start"))); 

String[] splited = (format2.format(startTime.getTimeInMillis() - current.getTimeInMillis()).split("\\s+")); 



     time = splited[0] + "hrs " + splited[1] + "mins"; 



    } catch (ParseException e) { 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

    if (checkStarted(startTime, current)) { 
     return time; 
    } else { 
     return "League Started"; 
    } 


protected boolean checkStarted(Calendar start, Calendar current) { 

    if (current.before(start)) { 
     return true; 
    } else { 


     return false; 
    } 

} 

這個問題我有的是,計算總是將剩餘的時間返回爲應該是的一個小時,直到它達到它實際上開始的時間,然後它返回沒有剩餘時間,例如

當前時間= 16時59 時間它開始於= 17時 剩餘時間時返回1hrs 1mins

然後

當前時間= 17時 時間它開始於= 17: 00 剩餘的時間返回聯盟已開始

回答