2012-03-07 3 views
1

1980 년 1 월 6 일부터 시작되는 특정 시간 (초)을 YYYY/MM/DD HH : mm : ss와 같은 UTC 형식으로 변환하는 직접적인 방법이 있습니까?GPS 시간 (밀리 초) UTC 형식

편집 :

private Date gpsInit; 
//... 
try{ 
     String ds = "06/01/1980"; 
     DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); 
     gpsInit = df.parse(ds); 
    } 
    catch(ParseException e) { 
     System.out.println("Unable to parse January 6th 1980"); 
    } 

    textField = new JFormattedTextField(format); 
    textField.setText(formatUTC(min)); 
//... 
private String formatUTC(int timeValue) { 
     long diference = timeValue + gpsInit.getTime()/1000; 
     String pattern = "yyyy/MM/dd HH:mm:ss"; 
     SimpleDateFormat utcFormat = new SimpleDateFormat(pattern); 
     Date utcNow = new Date(diference*1000); 
     return utcFormat.format(utcNow); 
    } 
+1

윤초 문제가 될 수 있습니다. – CodesInChaos

+0

비슷한 질문 : [GPS 시간 표현 라이브러리] (http://stackoverflow.com/q/3038229/642706). –

답변

7

뭔가 같은 :

  1. 이 (Calendar 통해) Date 객체를 구축합니다 06.01.1980 00:00:00 날짜
  2. 전화 getTime()에 대한 이후 밀리 초를 얻기 위해 여기에 코드 작업입니다 EPOCH
  3. 밀리 초를 추가하십시오.
  4. 해당 밀리 초 값을 사용하여 새 Date 개체를 생성합니다. 그것은 그러나 당신이 원하는
  5. 형식 (예 : SimpleDateFormatter)
+0

하지만 ... 1980 년 1 월 6 일부터 초를 얻은 다음 1070 년 1 월 1 일 이후로 초를 추가하면 2050 년이 될 것입니다. 아니? –

+0

@RomanRdgz, 귀하의 질문을 이해할 수 있는지 확실하지 않습니다. EPOCH는 01.01.1970입니다. 1970 년 6 월 1 일부터 EPOCH로 밀리 초를 가져오고 06.01.1980 * 이후에 * 밀리 초를 추가하면 01.01.1970 *에서 밀리 초 단위로 'Date'개체를 생성 할 수 있습니다. – Nim

+0

@RomanRdgz, 나는 당신이 당신의 질문을 변경 한 것을 본다. - 그것은 잘 변화시키지 않으며, 적절한 장소에서 1000으로 나눈다. – Nim