2012-08-22 6 views
0

예를 들어 메시지에 대해 smack API를 사용하고 있습니다. 메시지로 현재 시간을 보내고 싶습니다. 따라서 메시지 제목으로 현재 시간을 설정했습니다. receiver side.But 문제는 ​​메시지 제목이 문자열이어야하므로 보낸 사람 측에서 문자열로 날짜 시간을 변환 한 다음 다시받는 사람 측의 문자열에서 날짜 시간으로 변환합니다. 발신자의 날짜 시간을 수신기의 날짜로 변환해야합니다. Timezone.I 아래 코드를 작성했지만 날짜 시간을받는 사람의 표준 시간대 날짜 시간으로 변환 할 수 없습니다.안드로이드에서 한 시간대에서 다른 시간대로 날짜 시간을 변환합니다.

//sender side 
Calendar c = Calendar.getInstance(); 
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy"); 
String strdt= formatter.format(c.getTime()); 
message.setSubject(strdt); 

수신 측

TimeZone tz = TimeZone.getDefault(); 
String strzone=tz.getDisplayName(false, TimeZone.SHORT); 
String str=message.getSubject(); 
Date expiry = null; 
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy"); 
       formatter.setTimeZone(TimeZone.getTimeZone(strzone)); 
     try { 
       expiry = formatter.parse(str); 
        } 
      catch (Exception e) 
       {e.printStackTrace();} 

SimpleDateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy"); 
      df.setTimeZone(TimeZone.getTimeZone(strzone)); 
String formattedDate1= df.format(expiry); 
Log.i("receiving time",formattedDate1); 

내가 가지고

메시지 제목과 같은 하나 개의 출력 => 수요일 8월 22일 그리니치 표준시 13시 35분 13초 + 00 : 00 2012

변환 후에서 문자열 날짜 => Wed Aug 22 07:35:13 MDT 2012

수신자의 시간대를 설정 한 후 => 수요일 8 월 22 일 06:35 : (13) GMT-07 : 00 2012

실제 수신 측 시간 => 수요일 8월 22일 산악 서머 타임 06시 39분 56초 2012

편집

이 사실 난에 수신기와 할 보낸 사람의 시간을 보내려고합니다 수신기 쪽은 수신기의 시간대별로 변환해야합니다. 수신기의 실제 시간은 변환 시간과 다릅니다. 따라서 다른 코드가 있으면 여기에 게시하십시오.

+1

샘플 날짜를 공유하십시오. Z를 사용할 수도 있지만 데이터,이 설명서를 확인하십시오. http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html – rajpara

+0

업데이트 된 질문보기 – Nency

답변

0

시간이 있으면 평야를 사용하십시오. (Long.toString (new Date(). getTime()). TZ 정보를 포함하지 않으므로 (더 필요하지 않습니다.)

+0

하지만 시간이 지나야 만 알 수 있습니까? 이 long value로부터의 날짜와 시간은이 formate와 같습니다. "22 Aug 2012 06:20 Am" – Nency

+0

rtfm, 그리고 getTime은 에포크 이후 millis 수를 반환합니다. 필요하지 않으면 포맷 할 필요가 없습니다. 표준을 따르거나 사용자 인터페이스를 사용하십시오. – njzk2

+0

나는이 시간을 사용자 인터페이스에 표시하고 싶습니다. 밀리 초에서 특정 형식으로 변환해야합니다. 따라서 컨버팅 할 때 수신기 측에 수신기의 시간대를 설정해야합니다. 긴 값에서 날짜와 시간까지? – Nency

관련 문제