0

だから私はこのコードをAndroidに持っています

            DateFormat formatter = new SimpleDateFormat("HH:mm", Locale.getDefault());
            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(millisUntilFinished);
            textView.setText(formatter.format(calendar.getTime()));

このメソッドに値を渡す方法は次のとおりです。たとえば、時間と分の文字列は「8」と「30」です

Calendar c = Calendar.getInstance();
            String s = ApplicationPreferences.getWakeUp(ActivityStage1.this);
            String[] separated = s.split("\\:");
            String hours = separated[0];
            String minutes = separated[1];
            c.add(Calendar.DAY_OF_MONTH, 1);
            c.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hours));
            c.set(Calendar.MINUTE, Integer.parseInt(minutes));
            c.set(Calendar.SECOND, 0);
            c.set(Calendar.MILLISECOND, 0);
            long timeUntilStageTwo = (c.getTimeInMillis() - System.currentTimeMillis());
            startStageTwoTimer(timeUntilStageTwo);

したがって、長い millisUntilFinished の値は 58441666 のようなもので、これは約 16 時間 20 分ですが、何らかの理由で、テキスト ビューの最後に表示される時間は 3 時間以上あります。別のロケールを渡して試してみましたSimpleDateFormat と同じですが、なぜそれが起こっているのでしょうか?

4

1 に答える 1