2013-07-23 3 views
2

Je suis en train de convertir le temps que j'ai en chaîne statique, comme "07:02" en millisecondes. Je regarde la documentation TimeUnit et essayant d'obtenir ma chaîne pour convertir en millisecondes mais d'abord j'ai une chaîne, ainsi la fonction de convertisseur n'accepte pas la chaîne je suppose et d'autre part j'ai les deux, minutes et secondes, ainsi devrais-je les convertir un et ensuite les ajouter? Ne semble pas être une bonne approche?Android: convertir les minutes et les secondes en millisecondes

TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES) 
+1

Il semble une approche raisonnable. – assylias

Répondre

5

Je viens de vérifier la documentation de TimeUnit. Vous pouvez faire quelque chose comme ceci:

String time = "07:02"; 

long min = Integer.parseInt(time.substring(0, 2)); 
long sec = Integer.parseInt(time.substring(3)); 

long t = (min * 60L) + sec; 

long result = TimeUnit.SECONDS.toMillis(t); 
2

L'algorithme serait la suivante:

  1. converti en nombre entier (minutes int, secondes int)
  2. convertir les minutes en secondes (c.-à-minutes * 60;)
  3. ajouter les conversion des minutes en secondes (c.-à-d. int total = (minutes * 60) + secondes;)
  4. convertir en millisecondes (c.-à-d. milli = total/1000)
5

pour minuts

TimeUnit.MINUTES.toMillis(yourMinutes) 

pour les secondes

TimeUnit.SECONDS.toMillis(yourSeconds) 
1

je suis venu avec l'approche suivante.

Divisez l'heure par le ':' et utilisez la fonction TimeUnit.

int convertTime(String timeString) { 
     String[] time = timeString.split (":"); 
     int pos = time.length - 1; 
     long res = 0; 
     if(pos >=0){ 
      res = res + TimeUnit.SECONDS.toMillis(Long.parseLong(time[pos])); 
      pos --; 
     } 
     if(pos >=0){ 
      res = res + TimeUnit.MINUTES.toMillis(Long.parseLong(time[pos])); 
      pos --; 
     } 
     if(pos >=0){ 
      res = res + TimeUnit.HOURS.toMillis(Long.parseLong(time[pos])); 
      pos --; 
     } 
     return (int)res; 
    } 

Le code est plus complexe, comme il devrait fonctionner avec

10 
1:10 
01:10 
1:10:20 
Questions connexes