2014-06-17 5 views
0

내 안드로이드 응용 프로그램에서 나는 이런 식으로 타임 스탬프를 만드는거야안드로이드 유닉스 타임 스탬프 변환기

public static String getDate(long time) 
{ 
    Calendar cal = Calendar.getInstance(); 
    cal.setTimeInMillis(time); 
    String date = DateFormat.format("dd-MM-yyyy HH:mm:ss", cal).toString(); 
    return date; 
} 

그리고 제대로 작동합니다.

하지만 지금은 서버에서 타임 스탬프를 받고 있습니다. 날짜 문자열은 getDate에서 수신되는 정확한 날짜가 아닙니다.

실용 경우 : 1403022230766

getDate 반환이 날짜 : 17-06-2014 05:23:50 내 눈에 올바른

내 응용 프로그램이 타임 스탬프를 생성합니다. 1403022360

getdate 반환이 날짜 : 16-01-1970 18:43:42, 내 응용 프로그램에 의해 생성 된 타임 스탬프에 가까워 야 완전히 잘못

이제 문제는 서버에서이 타임 스탬프를 얻을에 온다.

서버에서 반환 한 타임 스탬프는 3 자리 작은 크기입니다. 하지만 온라인 변환기로 가면 this one과 같이 1403022360 (서버에서 생성 한 TS)을 넣습니다. 정확한 날짜를 얻습니다.

누구나 내가 왜이 차이점을 설명 할 수 있습니까? 내 getDate 메서드에서 서버에서받은 타임 스탬프를 디코딩 할 수 없는데 왜 잘못 되었나요?

답변

3

서버가 초 단위로 타임 스탬프를 반환하므로 1000을 곱하여 밀리 초를 얻습니다.

온라인 변환기는 숫자가 충분히 크면 밀리 초 단위이고 짧은 경우 초 단위라고 가정하기 때문에 제대로 작동합니다.

Java/Android 날짜는 모두 long 유형이므로 추가 정밀도를 위해 밀리 초를 유지할 수 있습니다.

+0

네, 맞습니다! 작동 중입니다. 최소 시간이 지나면 답장을 드리겠습니다 :) 감사합니다. – dazito

+0

당신은 환영합니다 :) – Uxonith

관련 문제