2016-03-28 11 views
0

時間がミリ秒単位であり、時間、分、秒に変換したいと考えています。私はこのコードを試しましたが、どういうわけか現在の時間はありません。例: 時間は3:50でしたが、7:50になりました。なぜこれが起こるのですか?なぜ私は時間を設定するのですか?

これは私が設定する方法で、取得し、表示時間:

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.MINUTE,timePicker.getCurrentMinute()); 
calendar.set(Calendar.HOUR_OF_DAY,timePicker.getCurrentHour()); 
long alarm3 = calendar.getTimeInMillis(); 
     long alarm4 = (alarm3/(1000*60*60))%24; 
     long alarm5 = (alarm3/(1000*60))%60; 
     long alarm6 = (alarm3/1000)%60; 
Log.i("Alarm1","Hours:" + Long.toString(alarm4)); 
     Log.i("Alarm1","Minutes:" + Long.toString(alarm5)); 
     Log.i("Alarm1","Seconds:" + Long.toString(alarm6)); 
+0

アップダウン矢印を使用して時間を設定するか、テキスト自体を編集しますか? –

+0

@ muhammed-refaat私が使用しているビューを意味するなら、私はタイムピッカーを使います。そうでない場合は質問を説明してください –

+0

TimePickerを使用していることは知っていますが、時間を設定するためにどのように使用するのか尋ねています。 TimePickerは2つの方法で使用することができます。最初のボタンはプラスボタンで、もう1つはアンドロイドキーボードで使用できるため、アンドロイドキーボードで使用すると問題が発生する可能性があります。 –

答えて

1

この機能を使用しSimpleDateFormat

public static String getOnlyTimeFromMillis(long millis) { 
    SimpleDateFormat apiFormat = new SimpleDateFormat("HH:mm:ss"); 
    Date date = new Date(millis); 
    return apiFormat.format(date); 
} 
+0

これはどういうわけか私のアプリの仕事に影響しませんか? –

+0

これは、アプリの時刻と同じオフセットでアラームが発生するので、面白い(UTC)時刻を表示するログにすぎません。 – ptrk

+0

ミルで時間を使ってアラームを設定するのはどうでしょう? –

1

あなたは上記の答えはちょうど作りますが

public static String getTimeFromMilliseconds(long milliseconds) { 

     return (new SimpleDateFormat("HH:mm:ss")).format(new Date(milliseconds)); 
    } 
0

を使用することができますそれがうまくいくと、あなたの解決策がなぜ失敗したのか疑問に思うかもしれませんこれはおそらくタイムゾーンのオフセットのためです。カレンダーのインスタンスを取得するとき:

Calendar calendar = Calendar.getInstance(); 

これはあなたのロケールも継承していますので、タイムゾーンも同じです。その後 、あなたのアプリのtimePickerは、同じ時間帯で動作し、あなたがconsistenly分と時間を設定すると仮定すると:

calendar.set(Calendar.MINUTE,timePicker.getCurrentMinute()); 
calendar.set(Calendar.HOUR_OF_DAY,timePicker.getCurrentHour()); 

が、最後にこの特定の方法は、UTC時刻を返します。

long alarm3 = calendar.getTimeInMillis(); 

だから私はあなたのTZオフセットは4時間と推測されます。

関連する問題