Android: форматируйте миллисекунды в> 60 секунд, если не указан ни один минутный формат - PullRequest
1 голос
/ 04 августа 2011

Я получил значение в миллисекундах.Я хочу использовать строку формата, чтобы отформатировать эти миллисекунды в формат времени.например, 45000 мс = 45 с или 0 м 45 с или как угодно.Так что это не особенная вещь.Я использовал SimpleDateFormat для этого, но теперь возникает моя проблема:

61000ms заканчивается за 1 м 1 с.Это нормально для меня, ЕСЛИ есть минута в строке формата.Но когда в строке формата не дается минут, она должна распечатать 61секунд вместо 1сек.

Есть ли какой-нибудь простой способ добиться этого?В настоящее время я не вижу его без всякого уродливого кода форматирования строки.

Надеюсь, вы мне поможете:)

Спасибо заранее!slain

Редактировать:

Для лучшего понимания: у вас есть 65400 миллисекунд.

строка формата имеет минуты, секунды, миллисекунды: 1m 5s 400ms
строка формата имеет минуты исекунды: 1 м 5 с
строка формата имеет секунды: 65 с
строка формата имеет секунды и миллисекунды: 65 с 4 мс
строка формата имеет минуты и миллисекунды: 1 м 5400 мс

Ответы [ 3 ]

1 голос
/ 04 августа 2011

Я не уверен, что именно вы пытаетесь конвертировать, но посмотрите на единицы времени .

0 голосов
/ 04 августа 2011

Не совсем уверен, что вы ищете, но вы можете анализировать миллисекунды вот так;

private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd MMM yyyy");

public static void main(String[] args) {
    final long millis = System.currentTimeMillis();
    System.out.println(DATE_FORMAT.format(new Date(millis))); // Prints 05 Aug 2011
}

Очевидно, что при необходимости вы можете настроить формат даты для отображения секунд, миллисекунд и т. Д.

0 голосов
/ 04 августа 2011

Если я правильно понимаю, у вас есть количество миллисекунд и строка формата времени, и вам нужно произвести правильно отформатированное время? Если нет, игнорируйте остальное ...

Может быть, не ЛУЧШИЙ способ, но довольно приятный водопад: конвертируйте миллисекунды в набор целых чисел за дни, часы, минуты, секунды (или больше, или меньше, в зависимости от ожидаемого диапазона), а затем выполняйте итерацию вперед через строку формата. Если день присутствует, отлично, укажите количество дней там. Если нет, пропустите его, умножьте на 24 и добавьте к часам. Сделайте то же самое для часов-> минут, минут-> секунд, и вы должны в конечном итоге правильно отформатировать его, даже если со странными форматами (например, дни и секунды, но не минуты).

...