java - 如何使用java在日期时间中执行时间 ("0:10") + ("0:15") 的加法?预期结果是 00 :25:00

标签 java

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

public class TimeAddition {
    public static void main(String args[]) throws ParseException {
        String i = "0:10";
        String a = "0:15";

// Converting String to Date format

        DateFormat sdf = new SimpleDateFormat("hh:mm");
        Date iTime = sdf.parse(i);
        Date aTime = sdf.parse(a);

//仅通过获取时间来添加两个日期时间

        long totalTime = iTime.getTime() + aTime.getTime();

        System.out.println("Total time in millisecond = " + totalTime);

        long millis = totalTime;

//将结果以毫秒为单位转换为“hh:mm:ss”

        String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
            TimeUnit.MILLISECONDS.toMinutes(millis)
                    - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
            TimeUnit.MILLISECONDS.toSeconds(millis)
                    - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));

    System.out.println("Time format " + hms);
}

}

//预期输出 00:25:00

最佳答案

您似乎想添加持续时间,Java 8+ 中有一个类可以表示:

Duration d1 = Duration.ofMinutes(10);
Duration d2 = Duration.ofMinutes(15);
Duration d = d1.plus(d2); //25 minutes

然后您需要将其格式化以进行输出。围绕这个问题有几个问题,例如:

请注意,如果持续时间少于一天,您可以使用:

LocalTime.MIDNIGHT.plus(d).format(DateTimeFormatter.ofPattern("HH:mm:ss"))

关于java - 如何使用java在日期时间中执行时间 ("0:10") + ("0:15") 的加法?预期结果是 00 :25:00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41329611/

相关文章:

java - 如何形成REST URL?

java - 如何让我的程序打印特定值的完整直角三角形?

java - 编写密码、PIN 和 PUK 程序

java - notifyDataSetChanged() 在 ListFragment 中不起作用

java - 我如何使用 i18n ? (吉普斯特)

java - 从 WSDL 到 java

java - glide 如何取消图片下载请求?

Java 双重相等

java - 拒绝包含除 a-z、A-Z、0-9 之外的字符的字符串

java - 为什么 Oraoop 1.6 在分配内存块之前要等待 1.5 分钟?