2013-07-23 2 views
2

Я пытаюсь преобразовать время, которое у меня есть в статической строке, такой как «07:02» в миллисекундах. Я смотрю документацию TimeUnit и пытаюсь получить мою строку для преобразования в миллисекундах, но сначала у меня есть строка, поэтому функция конвертера не принимает строку, которую я предполагаю, а во-вторых, у меня есть как минуты, так и секунды, поэтому я должен их преобразовать одним один, а затем добавить их? Не похоже, что это хороший подход?Android: Преобразование минут и секунд в миллисекунду

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

Это кажется разумным подходом. – assylias

ответ

5

Я только что проверил документацию для TimeUnit. Вы могли бы сделать что-то вроде этого:

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

алгоритм будет следующим:

  1. преобразовать в целое число (Int минут, Int секунд)
  2. конвертировать минут до секунд (т.е. минут * 60;)
  3. добавить (т. е. int total = (минуты * 60) + секунды;)
  4. конвертировать в миллисекунды (то есть миллионы = всего/1000)
5

для minuts

TimeUnit.MINUTES.toMillis(yourMinutes) 

секунды

TimeUnit.SECONDS.toMillis(yourSeconds) 
1

я придумал следующий подход.

Разделить время на ':' и использовать функцию 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; 
    } 

код является более сложным, так как он должен работать с

10 
1:10 
01:10 
1:10:20 
Смежные вопросы