Java 如何为我的(字符串)时间增加10分钟?

Java 如何为我的(字符串)时间增加10分钟?,java,Java,这次我有: String myTime = "14:10"; 现在我想在这个时间上再加上10分钟,这样时间就变成了14:20 如何实现这一点?您需要将其转换为日期,然后在日期中添加秒数,并将其转换回字符串。使用日历。添加(int字段,int金额)方法。我建议将时间存储为整数,并通过除法和模运算对其进行调整,完成后,将整数转换为所需的字符串格式。我将使用,将时间解析为LocalTime,然后使用 time = time.plusMinutes(10); 简短但完整的程序来演

这次我有:

String myTime = "14:10";
现在我想在这个时间上再加上10分钟,这样时间就变成了14:20


如何实现这一点?

您需要将其转换为日期,然后在日期中添加秒数,并将其转换回字符串。

使用
日历。添加(int字段,int金额)
方法。

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

我将使用,将时间解析为
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。

类似这样的东西

 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分钟内使用夏令时,可能会出现一些问题。

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

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
Java7时间API

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

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

我使用下面的代码将特定的时间间隔添加到当前时间

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

如果你想让它成为一个字符串,你会发现这很有用,不要忘记引号。newTime的可能副本是string,其中cal.getTime()返回日期java日期/时间API已经过时了,甚至可能会在未来的JDK中包含Joda time。请考虑乔恩。斯基特的答案。正是我想要的。我学会做时间数学的一件事:艰难的方法是该死的飞秒……在java.Thanx m0s中处理时间时,您永远不应该基于众所周知的时间(即1分钟=60秒)常量进行时间计算,以供评论。如果你能解释一下“在java中处理时间时,永远不要基于众所周知的时间(即1分钟=60秒)常数进行时间计算”的原因,这对包括我在内的所有人都会很有帮助。请参考java 8,因为java.time的API与Joda time非常相似(深受其启发)应该用它来代替。