2011-12-01 4 views
3

나는이 문제에 대한 직접적인 접근법을 아직 찾지 못했습니다. 나는 여러 가지 다른 예제를 보았습니다. 실제로 서로 충돌했습니다. 다른 사람들은 비추천 된 호출을 사용하고 있습니다. 왜 이것이 단단한 대답을 찾기가 어려운지 잘 모르겠습니다.Android : 2 가지 다른 시간대를 UTC로 변환하고 일,시, 분의 차이를 계산하십시오.

"yyyy-MM-dd hh:mm:ss" 

* 시간은 시간대가 자신의 타임 스탬프의 일부가 아닌 경우에도 동부 표준시에 있습니다

그래서 나는이 형식으로 웹 서비스에서 반환 된 타임 스탬프를 가지고있다.

내가 알고 싶은 것은 웹 서비스의 타임 스탬프 (EST)와 사용되는 전화기의 현재 시간 스탬프 (모든 시간대에있을 수 있음) 사이의 시간 차이를 계산하는 가장 좋은 방법입니다. 그런 다음 남은 일, 남은 시간, 남은 시간으로 카운트 다운으로 그 차이를 표시하십시오.

public String getTimeLeft(String date) { 
    StringBuilder dateString = new StringBuilder(); 
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
    formatter.setTimeZone(TimeZone.getTimeZone("EST")); 
    Date dateObj = formatter.parse(date); 

    Time time = new Time(Time.getCurrentTimezone()); 
    time.set(dateObj.getTime()); 
    time.timezone = Time.TIMEZONE_UTC; 
    long timeInMill = time.normalize(true); 
    endCal.setTimeInMillis(timeInMill); 

    currCal.setTime(new Date()); 

    long timeDiff = endCal.getTimeInMillis() - currCal.getTimeInMillis(); 
    int days = (int) (timeDiff/(1000*60)); 
    int hours = (int) ((timeDiff/(1000*60*60))%24); 
    int minutes = (int) ((timeDiff % (1000*60*60))/(1000*60)); 

    dateString.append(days + (days == 1 ? " DAY " : " DAYS ")); 
    dateString.append(hours + (hours == 1 ? " HOUR " : " HOURS ")); 
    dateString.append(minutes + (minutes == 1 ? " MINUTE " : " MINUTES ")); 

    return dateString.toString(); 
} 

을 ... 그리고 시간 차이가 정확하지 않습니다으로 뭔가 시간대 변환 문제가있다 :

현재 나는이 같은 일을하고 있어요. 어떤 도움이라도 대단히 감사합니다. 미리 감사드립니다.

+1

문제가 무엇인지 자세히 설명해 주실 수 있습니까? – Phil

+0

문제는 시간대가 다른 2 개의 타임 스탬프 간의 시간차가 정확하지 않다는 것입니다. – askilondz

+0

적어도 하나의 이슈를 생각할 수 있습니다. EST는 부활절 표준 시간입니다. 일광 절약 시간제로 전환하면 어떤 일이 발생하여 정확한 시간대 인 EDT가 생성되어 한 시간 이상 쉬어 질 수 있습니다. : -/원래 게시물의 시간을 고려하면 이것이 관련 답변 일 수 있습니다! –

답변

0

당신은 장치의 시간대가 웹 서비스에서 획기적인 시간을 보내는 것을 고려 얻을 수있는 경우 등 그 시대 (안 millisecinds에서) + - (초 시간대 디퍼 런스 세라마이드) 이제이 값을 변환 할 수 있습니다 epochlongvalue-(System.currentTimeMillis()/1000) 차이를 계산할 수 있습니다 ~h : mm : ss Convert seconds value to hours minutes seconds?