如何将时间添加到当前时间?

How to add time to the current time?

我有一个初始时间 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);

第 1 步:

通过实现以下逻辑将输入字符串转换为 java.util.Date:

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 转换回字符串,请使用以下逻辑:

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

您应该使用现代日期时间 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

查看 here 了解更多信息。

您可以通过以下方式完成:

String str = "13:00:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("kk:mm:ss");
LocalTime dateTime = LocalTime.parse(str, formatter).plusMinutes(144);
System.out.println(dateTime);