Как мне написать публичный таймер, который все видят одинаково? - PullRequest
0 голосов
/ 11 октября 2019

Я хочу добавить в свое приложение таймер, который показывает, когда выходит новое обновление. Важно то, что все, кто использует мое приложение, видят один и тот же таймер с одинаковым количеством оставшихся часов.

Кто-нибудь знает, как мне это заархивировать?

ОБНОВЛЕНИЕ:

Я пробовал это до сих пор:

SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss");
        formatter.setLenient(false);


        String endTime = "11.10.2019, 15:23:00";

        Date endDate;
        try {
            endDate = formatter.parse(endTime);
            timer = endDate.getTime();

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (java.text.ParseException e) {
            e.printStackTrace();
        }

        startTime = System.currentTimeMillis();

        diff = timer - startTime;


        new CountDownTimer(timer, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {

                startTime=startTime-1;
                long serverUptimeSeconds =
                        (millisUntilFinished - startTime) / 1000;




                String  hms =  (String.format("%d", serverUptimeSeconds / 86400)+"d "+String.format("%d", (serverUptimeSeconds % 86400) / 3600)+"h "+ String.format("%d", ((serverUptimeSeconds % 86400) % 3600) / 60))+"m " + String.format("%d", ((serverUptimeSeconds % 86400) % 3600) % 60)+"s ";
                counter.setTitle(hms);

            }

Показывает оставшееся время в зависимости от даты и времени, когда я пишу в

String endTime = "11.10.2019, 15:23:00";

и от часового пояса пользователя. .

Как мне заархивировать, чтобы все видели оставшееся время не на основе своего часового пояса, а на моем часовом поясе: GMT + 2?

1 Ответ

0 голосов
/ 11 октября 2019

Вы можете получить время только в одном часовом поясе. И все пользователи увидят один и тот же результат времени, независимый от часового пояса пользователя

TimeZone tz = TimeZone.getTimeZone("GMT+02:00");
Calendar c = Calendar.getInstance(tz);
String time = String.format("%02d" , c.get(Calendar.HOUR_OF_DAY))+":"+
        String.format("%02d" , c.get(Calendar.MINUTE))+":"+
        String.format("%02d" , c.get(Calendar.SECOND))+":"+
        String.format("%03d" , c.get(Calendar.MILLISECOND));
...