2011-09-19 4 views
0

좋아, 그래서 나는 거의 모든 것을 시도했다. 나는 그것이 정말로 단순한 무엇인가 내기를했다. 그러나 나는 그것을 잡을 것 같지 않다.서버 시간대 자바 변환

서버가 시간을 보냅니다.이 시간은 신기원입니다. 그러나 이것을 날짜 객체에 넣으면 자동으로 시간대를 선택하는 것으로 보이며 서버 시간에 +3을 더합니다. 따라서 GMT 시간이 00.00이면 03.00이라고 표시됩니다.

또한 내 자신의 시간대를 추가해야합니다. 에포크 시간이 다시 00.00이라고 가정하고, 시간대를 추가 한 후에 10.00을 읽어야합니다.

모든 도움을 주시면 감사하겠습니다. 고맙습니다.

답변

0

"추가되는 것처럼 보입니다."- 실제로 로컬 시간대를 사용하는 Date.toString()을 사용하고있는 것으로 의심됩니다. Date 개체 자체는 실제로 UTC에 있습니다. 대신 DateFormat을 사용하여 문자열로의 변환을 수행하고 사용할 시간대를 지정할 수 있습니다. Calendar을 사용해야 할 수도 있습니다. 수행하려는 작업에 따라 다릅니다.

(다른 방법으로는 더 좋은 API 인 Joda Time을 사용하십시오.하지만 안드로이드 프로젝트에서는 약간 부피가 클 수 있습니다. "Joda Time Lite"프로젝트가 어딘가에 있다면 놀라지 않을 것입니다. 일은 정확히 이런 종류의 ...)

편집을 위해 : 빠른 샘플, 그것은 당신이 필요 완전히 명확하지 않지만 ...

long millis = getMillisFromServer(); 
Date date = new Date(millis); 
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 
format.setTimeZone(customTimeZone); 
String formatted = format.format(date); 
+0

나는 예를 가질 수있다. 나는 그것을 다른 것과 비교할 필요가있다. – Hades

+0

@Hades : 당신이하려는 일이나 필요한 형식이 완전히 명확하지는 않지만, 지금 하나 추가했다. –

+0

괜찮아 보이는 군 ... 고마워 ... – Hades