2012-04-16 5 views
1

안드로이드 응용 프로그램의 시간대에 문제가 있습니다. 내가 응용 프로그램을 시작하고 textViews 볼 때android 캘린더 시간대가 작동하지 않습니까?

Calendar c1 = Calendar.getInstance(TimeZone.getTimeZone("America/Miami")); 
    c2 = Calendar.getInstance(TimeZone.getDefault()); 
    c2.set(2012, Calendar.MAY, 1, 9, 0, 0); 

    tv2.setText(c1.getTime().toString()); 
    tv3.setText(c2.getTime().toString()); 

내가 찾을 : 다음 코드에서

내 예입니다 enter image description here

그들은 모두 GMT + 2 및 제하지 않는 이유 마이애미 시간대?

+1

AFAIK, 기기에 특정 시간대가있는 경우에만 시간대가 작동합니다. String [] getAvailableIDs()를 사용하여 특정 시간대가 있는지 확인해보십시오. 또한 GMT – Shubhayu

+0

을 사용하여 시간대를 제공하는 TimeZone.getTimeZone ("GMT + 14 : 00")을 사용해 볼 수도 있습니다. 마이애미가 없으므로 "New_York"로 변경했지만 아직 작동하지 않습니다. – gurehbgui

+0

또한 TimeZone.getTimeZone ("GMT-05 : 00")으로 변경하면 작동하지 않습니다. – gurehbgui

답변

6

내가 겪고있는 것을 복제 할 수 있습니다. 다음을 수행하여 마이애미 시간대에 정확한 시간을 얻을 수 있습니다 :

Calendar c1 = new GregorianCalendar(TimeZone.getTimeZone("GMT-4")); 
int hour = c1.get(Calendar.HOUR);   
int minutes = c1.get(Calendar.MINUTE);  
int seconds = c1.get(Calendar.SECOND); 

tv2.setText(String.format("%d:%d:%d", hour, minutes, seconds)); 

출력 : 4시 22분 41초

당신은 사용할 수 있습니다 "미국/뉴욕"또는 "GMT-4". 그러나 Chillrat 언급으로 마지막 하나는 일광 절약과 함께 몇 가지 문제가있을 수 있습니다.

+0

일광 절약 시간제 변경시이 방법에 문제가 있습니까? – Chilledrat

+0

네가 맞다고 생각해. "America/New_York"을 사용할 수 있습니다.이 시간대는 마이애미와 같은 시간대 여야합니다. 달력 c1 = 새 GregorianCalendar (TimeZone.getTimeZone ("America/New_York")); – Priebe

5

Ok는 마침내 많은 시도 끝에 그것을 알아 냈습니다. 내가 관찰 한 문제는 Calendar의 getTime()이 항상 현재 TimeZone의 날짜를 반환하는 것 같습니다. 나는 아직도 그것이 작동하는 방식이라고 말하는 어떤 데이터도 찾지 못했습니다.

원하는 방식으로 데이터를 가져 오려면 SimpleDataFormat을 소개해야합니다. 이것이 제가 데이터를 얻으려고 한 것입니다.

Calendar c1 = Calendar.getInstance(TimeZone.getTimeZone("America/New_York"), Locale.US); 
Calendar c2 = Calendar.getInstance(TimeZone.getDefault()); 
c2.set(2012, Calendar.MAY, 1, 9, 0, 0); 

SimpleDateFormat sdf = new SimpleDateFormat(); 
sdf.setCalendar(c1); 
tv2.setText(sdf.format(c1.getTime())); 
tv3.setText(c2.getTime().toString()); 

여기에 정의 된 TimeZone에 따른 출력이 표시됩니다.

참고 로케일은 권장되는 연습이기 때문에 사용되었습니다. 이게 효과가 있는지 말해봐.

관련 문제