2014-05-18 1 views
0

다음 코드를 사용하여 날짜를 인코딩하려고했습니다.DateFormat 및 Base64

String[] anArray = {"Value1","Value2" DateFormat.getDateTimeInstance.format(new  Date())}; 
StringBuilder strBulder = new StringBuilder("tracker="); 
strBuilder.append(new String(Base64.encode(anArray[0].getBytes()))) 
      .append("&param1=") 
      .append(new String(Base64.encode(anArray[1].getBytes()))) 
      .append("&timestamp=") 
      .append(new String(Base64.encode(anArray[2].getBytes()))).toString(); 

인코딩 된 타임 스탬프는 항상 동일하게 유지해야하는 문제입니다.

+0

당신은이 anArray [2] 다음 – andy

+0

를 내 테스트 결과 인쇄 할 수 있습니다, 이러한 월 (18) 만 2 문자의 차이 사이에 두 결과 입니다 2014 오후 3시 39분 11초 추적기 = VmFsdWUx & PARAM1 = VmFsdWUy 및 타임 스탬프 = TWF5IDE4LCAyMDE0IDM6Mzk6MTEgUE0 = 월주의 18, 2014 3:39:25 PM 추적기 = VmFsdWUx & param1 = VmFsdWUy & timestamp = TWF5IDE4LCAyMDE0IDM6Mzk6MjUgUE0 = – andy

+0

출력은 다음과 같습니다. anArray [2] = "5/18/14 2:27 AM"AND anArray [2] .getBytes() = [53, 47, 49, 56, 47, 49, 52, 32, 50, 58, 50, 55, 32, 65, 77] ... 내 경우 타임 스탬프가 같아진다. – VirtualLogic

답변

0

시도

String.valueOf(new Date().getTime()) ;  //encode this String 

를 사용하는 일반적으로 배열의 세 번째 값 방식 대신 형식의 날짜

DateFormat.getDateTimeInstance.format(new Date())); 

를 사용하여 preffered 그리고 사용 문자열이 긴 형식의 날짜를 편대있다

String strDate = DateFormat.getDateTimeInstance.format(new Date(Long.valueOf(anArray [2]))); 

어디 까지나 표시 용으로 사용하고 있습니다.

+0

고마워, 나는 그것을 시험해보아야한다. – VirtualLogic

+0

올바른 것으로 표시하는 것을 잊지 마십시오. 작동한다면 ... :) –