2016-06-24 1 views
-4

나는 타임 스탬프가 1454716800이고 이는 02/06/2016 @ 12:00am (UTC)입니다. 0 시간 (24 시간 표시), 0 분 0 초입니다. 그러나 Calendar 개체로 만들고 시간, 분, 초를 동일하게 (00:00:00) 설정하면 다른 시간에 나타납니다! 왜 이런거야?캘린더의 유닉스 타임 스탬프와 분, 시간 및 초를 동일하게 설정하는 것이 왜 잘못된 시간입니까?

long timestamp = 1454716800; 

    Calendar theDate = Calendar.getInstance(); 

    //Set our date and adjust the time 
    theDate.setTimeInMillis(timestamp * 1000); 
    theDate.set(Calendar.HOUR_OF_DAY, 0); 
    theDate.set(Calendar.MINUTE, 0); 
    theDate.set(Calendar.SECOND, 0); 

내가 뭘 잘못하고 있니?

+1

예상되는 내용과 반환되는 내용을 추가하십시오. – Konrad

+1

다른 시간에 * 나온다는 것은 무엇을 의미합니까? 너는 무엇을 인쇄 했는가? – Tunaki

+0

당신은 어느 TimeZone에 있습니까? –

답변

2

유닉스 에포크 타임 스탬프는 분명히 UTC이지만, 기본 자바 캘린더는 아닙니다. 수정하려면 :

Calendar theDate = Calendar.getInstance(TimeZone.getTimeZone("UTC")); 
관련 문제