Как добавить время к текущему времени? - PullRequest
0 голосов
/ 28 января 2020

У меня есть начальное время 12:00:00, и мне нужно добавить 144 мин.

Ожидаемый результат - 15.24.00 (т.е. добавление 2,24 часа к начальному времени).

Как обновить текущий код, указанный ниже?

String startTime = "13:00:00";
SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");
Date date1 = null;
Date date2 = null;  
try {
    date1 = format.parse(startTime);    
} catch (ParseException e) {
    e.printStackTrace();    
}
Long addition = (long) (TimeUnit.MILLISECONDS.toMinutes(date1.getTime()));
System.out.println("Difference : "+addition);

Ответы [ 3 ]

5 голосов
/ 28 января 2020

Вы должны использовать современный API даты и времени следующим образом:

import java.time.Duration;
import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
        LocalTime time = LocalTime.parse("13:00:00").plus(Duration.ofMinutes(144));
        System.out.println(time);
    }
}

Вывод:

15:24

Проверьте здесь для больше информации.

0 голосов
/ 28 января 2020

Вы можете сделать это следующим образом:

String str = "13:00:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("kk:mm:ss");
LocalTime dateTime = LocalTime.parse(str, formatter).plusMinutes(144);
System.out.println(dateTime);
0 голосов
/ 28 января 2020

Шаг 1:

Преобразование входной строки в java .util.Date путем реализации следующих логи c:

public static Date getDate(String source, String format) throws ParseException {
    DateFormat dateFormat = new SimpleDateFormat(format);
    return dateFormat.parse(source);
}

Шаг 2:

Добавление минут к дате:

    public static Date add(Date date, int minute) {
       Calendar calendar = Calendar.getInstance();
       calendar.setTime(date);
       calendar.add(Calendar.MINUTE, minute);
       return calendar.getTime();
    }

Шаг 3:

Теперь, если вы хотите преобразовать java .util.Date обратно в строку, используйте следующую логику c:

    public static String getDate(Date date, String format) {
       DateFormat dateFormat = new SimpleDateFormat(format);
       return dateFormat.format(date);
    }
...