41 votes

Comment ajouter 10 minutes à mon temps (String) ?

J'ai ce temps :

 String myTime = "14:10";

Maintenant, je veux ajouter 10 minutes à ce temps, pour que ce soit 14:20

Comment puis-je atteindre cet objectif?

88voto

m0s Points 2183

Quelque chose comme ça

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

En guise d'avertissement, il peut y avoir des problèmes si l'heure d'été est impliquée dans cette période de 10 minutes.

24voto

Jon Skeet Points 692016

J'utiliserais Joda Time , analyserais l'heure en tant que LocalTime , puis utiliserais

 time = time.plusMinutes(10);

Programme court mais complet pour le démontrer :

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

Notez que j'utiliserais certainement Joda Time au lieu de java.util.Date/Calendar si vous le pouvez - c'est une API beaucoup plus agréable.

13voto

AVD Points 57984

Utilisez la méthode Calendar.add(int field,int amount)

5voto

GKislin Points 254

API de temps Java 7

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

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

1voto

Vous devez le convertir en date, où vous pouvez ensuite ajouter un nombre de secondes et le reconvertir en chaîne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X