2

한 시간의 불일치가 :Convertion 캘린더에 - 나는 달력 개체에 유닉스 시간을 변환하려면이 방법을 쓴

 /** 
* Converts Unix time to Calendar instance. 
*/ 
public static Calendar unixToCalendar(long unixTime){ 
    Calendar calendar = new GregorianCalendar(1970/*Year*/, GregorianCalendar.JANUARY/*0*/,  1 /*Day*/, 00, 0); 
    calendar.add(Calendar.MINUTE, (int) (unixTime/60/* Sec to Min */)); 
    return calendar; 
} 

문제가 더 큰 입력 값을 내가 정확히 하나를 얻을 것입니다이 시간 차이가 결과에 실시간으로 반영됩니다. 차이가 796,000,000 값 사이에 어딘가에 시작

... 796000000 때까지 예를 들어

우리가 같은 결과를 얻을 수는 (현실과 일치), 그러나 최대 797,000,000 및 위해 우리는 한 시간 한 시간 차이 (내 코드를 얻을 앞으로).

제가 사용하는 경우 :

calendar.setTimeInMillis (* 1000을 unixTime);

나는 현실 (동일한 가치)에서 3-2 시간 diffrence에 다만 동일한 문제를 얻는다. 0 http://www.epochconverter.com/ http://www.onlineconversion.com/unix_time.htm

+1

서버의 위치는 어디입니까? 일광 절약 시간제를 알고 있습니까? – Adrian

+0

안녕하세요, 내가 읽고 : System.out.println (TimeZone.getTimeZone (내 영역) .inDaylightTime (새 날짜())); 거짓을 반환합니다. 어쨌든 DST와 아무 상관이 없습니다. – user2335692

+0

이것은 1 시간 불일치가 아닙니다. – Adrian

답변

5

그것을 할 권장되는 방법은 지역을 검색하는 것입니다 주셔서 감사합니다

나는 나 자신을 확인하기 위해 일부 온라인 사이트를 사용하고, 나는 GMT에 결과를 찾고 있어요 Calendar의 인스턴스 :

Calendar c = Calendar.getInstance(); 

그런 다음 setTimeInMillis() 메서드를 사용하여 Unix 시간을 전달합니다. 이와 같이 :

/** 
* Converts Unix time to Calendar instance. 
*/ 
public static Calendar unixToCalendar(long unixTime){ 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(unixTime); 
    return calendar; 
} 
+0

안녕 리브, 내가 쓴 것처럼 내가 너무 이런 식으로 시도했지만 같은 문제가 발생합니다. 감사 – user2335692