예를 들어 메시지에 대해 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
편집
이 사실 난에 수신기와 할 보낸 사람의 시간을 보내려고합니다 수신기 쪽은 수신기의 시간대별로 변환해야합니다. 수신기의 실제 시간은 변환 시간과 다릅니다. 따라서 다른 코드가 있으면 여기에 게시하십시오.
샘플 날짜를 공유하십시오. Z를 사용할 수도 있지만 데이터,이 설명서를 확인하십시오. http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html – rajpara
업데이트 된 질문보기 – Nency