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

时间:2012-01-26 08:36:24

标签: java

我正在这个时间

String myTime = "14:10";

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

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

由于

8 个答案:

答案 0 :(得分:74)

像这样的东西

 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());

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

答案 1 :(得分:21)

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

time = time.plusMinutes(10);

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

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));
    }       
}

请注意,如果可能的话,我肯定使用Joda Time而不是java.util.Date/Calendar - 这是一个很多更好的API。

答案 2 :(得分:11)

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

答案 3 :(得分:3)

Java 7 Time API

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

    LocalTime lt = LocalTime.parse("14:10");
    System.out.println(df.format(lt.plusMinutes(10)));

答案 4 :(得分:1)

您需要将其转换为日期,然后您可以添加一些秒数,然后将其转换回字符串。

答案 5 :(得分:0)

我建议将时间存储为整数,并通过除法和模运算符对其进行调整,一旦完成,将整数转换为所需的字符串格式。

答案 6 :(得分:0)

在上述答案中,您有很多简单的方法。 这只是另一个想法。您可以将其转换为毫秒并添加TimeZoneOffset并按毫秒添加/减少分钟/小时/天等。

String myTime = "14:10";
int minsToAdd = 10;
Date date = new Date();
date.setTime((((Integer.parseInt(myTime.split(":")[0]))*60 + (Integer.parseInt(myTime.split(":")[1])))+ date1.getTimezoneOffset())*60000);
System.out.println(date.getHours() + ":"+date.getMinutes());
date.setTime(date.getTime()+ minsToAdd *60000);
System.out.println(date.getHours() + ":"+date.getMinutes());

输出:

14:10
14:20

答案 7 :(得分:0)

我使用下面的代码为当前时间添加一定的时间间隔。

    int interval = 30;  
    SimpleDateFormat df = new SimpleDateFormat("HH:mm");
    Calendar time = Calendar.getInstance();

    Log.i("Time ", String.valueOf(df.format(time.getTime())));

    time.add(Calendar.MINUTE, interval);

    Log.i("New Time ", String.valueOf(df.format(time.getTime())));