2012-04-29 16 views
2

私はcurrentTimeMillis();を使って開始時間を得てから、後でもう一度終了時間を取得します。私は最後から削除開始を使用し、2つの間の期間である値を取得します。私はSimpleDateFormatを使用して、これらのすべての値をかなり読みやすくしています。唯一のことは、私が10秒(または300など)のような低い値を使用していて、完全に吹かれた長い番号(すなわち1335718053126)ではなく、01:10:10または01:02:12など私のアウトプット?実際、SimpleDateFormatに0の値に対してhh:mm:ssの値を出力するように頼んだ場合は、01:00:00となります。Android:SimpleDateFormatは自分の時間に1時間追加し続けます

これはなぜですか?

他の誰かが時間の書式設定の解決策を必要とする場合は、このちょっとしたコードを見つけてください。 Source link

public String getNiceTime(long time) {  

    String format = String.format("%%0%dd", 2); 
    String seconds = String.format(format, time % 60); 
    String minutes = String.format(format, (time % 3600)/60); 
    String hours = String.format(format, time/3600); 
    String outPutTime = hours + ":" + minutes + ":" + seconds; 
    return outPutTime; 
} 
+1

あなたは時刻形式ではなく、日付を使用しています。おそらく夏の時間と関係がありますか? – Heinrisch

+0

私はあなたが正しいと思います、どうやってこれのタイムゾーンを変えることができますか、それとも私が使うことができるシンプルタイムフォーマットがありますか? – Purplemonkey

+0

ちょうど時間を出力する良い方法がわからない場合は、自分で時間:分:秒を計算する必要があります。 – Heinrisch

答えて

2
mySimpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); 

説明:あなたはおそらくGMT + 1タイムゾーンに住んでいると、あなたは別のものを指定しない限り、それはGMTなどととして0時間を考慮して、あなたのフォーマッタは、現在のものを選択しますあなたはGMT + 1で、1時間を出力します

関連する問題