みなさん、こんにちは、私は目覚まし時計のあるアプリに取り組んでいます。ユーザーがアラームを設定すると、アプリはアラームが鳴るまでの時間をユーザーに通知する必要があります。
ミリ秒を正しい形式にするために simpleDateFormater を使用しています。アラームは設定された時刻に正しく鳴りますが、フォーマットされた時刻では常に 11 時間余分に取得されます。
例えば。現在の時刻が午前 1 時で、アラームを午前 1 時 10 分に設定している場合。アラームが 10 分ではなく 11 時間 10 分に設定されているというメッセージが表示されます。アラームは午前 1 時 10 分に正しく鳴ります。
関連するコードを添付しています。これ以上のコードが必要な場合はお知らせください。
long current = System.currentTimeMillis();
long time_left = set_time-current; // set_time is the time the alarm should go off , and it is set else where in the activity.
String datePattern = "h ' hours and' mm ' minutes'";
SimpleDateFormat formatter = new SimpleDateFormat(datePattern);
String timeLeft_string = formatter.format(time_left);
Toast.makeText(getBaseContext(), "Alarm set for"+timeLeft_string, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
intent.putExtra("id", mRowId);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), mRowId_int, intent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, set_time, pendingIntent);
ここに私の質問があります: 1. 11 時間はどこから来たのですか? 2.どうすればそれを取り除くことができますか?
時間を割いてこれを読んでくれてありがとう。