Преобразование строки длительности в миллисекунды

Мне нужно разобрать строку длительности вида 98d 01h 23m 45sв миллисекунды.

Я надеялся, что существует эквивалент SimpleDateFormatдля такой длительности, но ничего не нашел.Кто-нибудь порекомендует за или против использования SDF для этой цели?

Мой текущий план состоит в том, чтобы использовать регулярное выражение для сопоставления с числами и сделать что-то вроде

Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher("98d 01h 23m 45s");

if (m.find()) {
    int days = Integer.parseInt(m.group());
}
// etc. for hours, minutes, seconds

, а затем использовать TimeUnit, чтобы собрать все вместе и преобразовать в миллисекунды.

Я думаю, мой вопрос в том, что это кажется излишеством, можно ли это сделать проще? Возникло много вопросов о датах и ​​временных метках, но, может быть, это немного другое.

7
задан Craigy 13 June 2012 в 19:24
поделиться