2013-06-09 3 views
2

시간대가 관련된 java.util.Date로 유닉스 타임 스탬프 변환과 약간 혼동 스럽습니다.android 유닉스 시간을 utc 날짜로 변환합니다.

유닉스 시간 스탬프는 "1367832568"입니다. 그것은 UTC 날짜입니다 (May 06 06 17:29:28 GMT + 00 : 00 2013). 내가 다음 작업을 수행 할 때 :

Date d = new Date(1367832568 * 1000); 

이 정확하지하는 나에게 Mon May 06 17:29:28 GMT+08:00 2013을 제공합니다. 그것은 나를 주어야한다 :

Mon May 07 01:29:28 GMT+08:00 2013 

을 유닉스 타임 스탬프가 실제로 UTC 날짜이기 때문이다. 그래서 이것은 혼란 스럽습니다. UTC Unix 타임 스탬프를 UTC Date 개체로 올바르게 변환하려면 어떻게해야합니까?

+2

날짜의 인수를 모두 long 형변환하려고합니다. Date d = new Date (((long) 1367832568 * (long) 1000)); – Blackbelt

답변

4

나는,하지만 난

월 5월 6일 9시 29분를 얻을 수 있어요 (GMT까지)에 dateformat 객체에 시간대를 설정하여 당신은 당신의 날짜 객체를 포맷하는 exactely 방법을 잘 모르겠어요 : 28 GMT 2013 AM

당신이 찾고있는 날짜와 같습니다.

long time = 1367832568 * (long) 1000; 
    Date date = new Date(time); 
    SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy a"); 
    format.setTimeZone(TimeZone.getTimeZone("GMT")); 
    Log.d("date", format.format(date)); 
+0

나는 문자열 싶지 않아요. GMT 날짜가있는 데이트 개체가 필요합니다. 당신이하고있는 일은 로컬 GMT date 객체를 사용하고 포맷터를 사용하고 GMT 문자열을 출력하는 것입니다. GMT Date 객체가 필요합니다. 코드의 2 번 줄은 GMT 날짜 객체를 제공해야합니다. 그게 내가 원하는거야. –

+0

또한 인쇄 한 날짜가 올바르지 않습니다. 나는 그것이 당신의 시간대 때문에 바뀌 었다고 생각합니다. 올바른 출력은 May May 06 17:29:28 GMT + 00 : 00 2013 –

+0

이어야합니다. Date 객체에 로케일을 설정할 수 없으며 대신 Calendar를 사용하십시오. 시간은 http://www.epochconverter.com/에 따라 정확합니다. –