Как добавить время в Android - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть длительность, возвращенная из Google Direction API, и я преобразую ее в строку типа:

Common.DURATION = String.valueOf(hours + " hours " + minutes + " mins " + seconds + " seconds ");

Я хочу добавить продолжительность и текущее время и отобразить его в TextView. У меня есть текущее время и часы, и я преобразую в строку, как это

String currentDateTimeString = DateFormat.getTimeInstance().format(new Date());

Как мне сложить их, используя метод Time, и отобразить его?

                double dist = totalDistance / 1000.0;
                int days = totalSeconds / 86400;
                int hours = (totalSeconds - days * 86400) / 3600;
                int minutes = (totalSeconds - days * 86400 - hours * 3600) / 60;
                int seconds = totalSeconds - days * 86400 - hours * 3600 - minutes * 60;

                Common.DISTANCE = String.valueOf(dist + " km ");
                Common.DURATION = String.valueOf(hours + " hours " + minutes + " mins " + seconds + " seconds ");

                SimpleDateFormat DBFormat = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
                String currentDateandTime = DBFormat.format(new Date());

                Date date = null;
                try {
                    date = DBFormat.parse(currentDateandTime);
                } catch (ParseException e) {
                    e.printStackTrace();
                }

                Calendar calendar = Calendar.getInstance();
                calendar.setTime(date);
                calendar.add(Calendar.HOUR, hours);
                calendar.add(Calendar.MINUTE, minutes);
                calendar.add(Calendar.SECOND, seconds);
                Log.v("1st",""+calendar.getTime());
                Common.ESTIMATED_TIME = String.valueOf(calendar.getTime());

1 Ответ

0 голосов
/ 06 апреля 2019

Попробуйте это

передать свою продолжительность в трех следующих параметрах.

int additionalHour = 0;
int additionalMinute = 0;
int additionalSeconds = 0;


SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd:HH:mm", Locale.getDefault());
String currentDateandTime = sdf.format(new Date());

Date date = null;
try {
    date = sdf.parse(currentDateandTime);
} catch (ParseException e) {
    e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, additionalHour);
calendar.add(Calendar.MINUTE, additionalMinute);
calendar.add(Calendar.SECOND, additionalSeconds);

System.out.println("Desired Time here "+calendar.getTime());

Дата форматирования

private static SimpleDateFormat DBFormat = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());

public String getFormatDate() {
        Date date = new Date();
        return DBFormat.format(date);
    }
...