2012-03-07 39 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. はからのミリ秒を取得する06.01.1980 00:00:00
  2. コールgetTime()用(Calendar経由)Dateオブジェクトを構築EPOCH
  3. ミリ秒を追加する
  4. ミリ秒の値を持つ新しいDateオブジェクトを作成します。それはしかし、あなたがしたい
  5. フォーマット(例えばSimpleDateFormatter
+0

しかし...もし私が1980年1月6日から秒を取得し、1070年1月1日から秒を追加すると、2050年になるでしょう。いいえ? –

+0

@RomanRdgz、ええ、あなたの質問は分かりません。 EPOCHは01.01.1970です.9.01.1980からEPOCHにミリ秒が得られ、06.01.1980 *以降に*ミリ秒を追加すると、01.01.1970 *からミリ秒単位で 'Date'オブジェクトを構築できます。 – Nim

+0

@RomanRdgz、私はあなたの質問を変更したことを知っています - それは事をあまり変えず、適切な場所で1000で割り、掛けます。 – Nim

関連する問題