나는이 문제에 대한 직접적인 접근법을 아직 찾지 못했습니다. 나는 여러 가지 다른 예제를 보았습니다. 실제로 서로 충돌했습니다. 다른 사람들은 비추천 된 호출을 사용하고 있습니다. 왜 이것이 단단한 대답을 찾기가 어려운지 잘 모르겠습니다.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();
}
을 ... 그리고 시간 차이가 정확하지 않습니다으로 뭔가 시간대 변환 문제가있다 :
현재 나는이 같은 일을하고 있어요. 어떤 도움이라도 대단히 감사합니다. 미리 감사드립니다.
문제가 무엇인지 자세히 설명해 주실 수 있습니까? – Phil
문제는 시간대가 다른 2 개의 타임 스탬프 간의 시간차가 정확하지 않다는 것입니다. – askilondz
적어도 하나의 이슈를 생각할 수 있습니다. EST는 부활절 표준 시간입니다. 일광 절약 시간제로 전환하면 어떤 일이 발생하여 정확한 시간대 인 EDT가 생성되어 한 시간 이상 쉬어 질 수 있습니다. : -/원래 게시물의 시간을 고려하면 이것이 관련 답변 일 수 있습니다! –