Java:如何在我的时间里添加10分钟

jun*_*idp 37 java

我得到这个时间了

String myTime = "14:10";
Run Code Online (Sandbox Code Playgroud)

现在我想添加10分钟,这样就可以了 14:20

这是可能的,如果是的话,怎么样?

谢谢

m0s*_*m0s 80

像这样的东西

 String myTime = "14:10";
 SimpleDateFormat df = new SimpleDateFormat("HH:mm");
 Date d = df.parse(myTime); 
 Calendar cal = Calendar.getInstance();
 cal.setTime(d);
 cal.add(Calendar.MINUTE, 10);
 String newTime = df.format(cal.getTime());
Run Code Online (Sandbox Code Playgroud)

作为一个公平的警告,如果在这10分钟的时间内涉及夏令时,可能会出现一些问题.

  • java日期/时间API毫无希望地过时,甚至可能将Joda Time包含在未来的JDK中.请考虑Jon Skeet的回答. (2认同)

Jon*_*eet 21

我会使用Joda Time,将时间解析为a LocalTime,然后使用

time = time.plusMinutes(10);
Run Code Online (Sandbox Code Playgroud)

简短但完整的程序来证明这一点:

import org.joda.time.*;
import org.joda.time.format.*;

public class Test {
    public static void main(String[] args) {
        DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");
        LocalTime time = formatter.parseLocalTime("14:10");
        time = time.plusMinutes(10);
        System.out.println(formatter.print(time));
    }       
}
Run Code Online (Sandbox Code Playgroud)

请注意,我将肯定使用约达时间,而不是java.util.Date/Calendar如果你所能-这是一个很大更好的API.


ada*_*ost 11

使用Calendar.add(int field,int amount)方法.


GKi*_*lin 5

Java 7 时间 API

    DateTimeFormatter df = DateTimeFormatter.ofPattern("HH:mm");

    LocalTime lt = LocalTime.parse("14:10");
    System.out.println(df.format(lt.plusMinutes(10)));
Run Code Online (Sandbox Code Playgroud)