Я пытаюсь перенести datetime на Duration, который я получаю в формате «HHmm», например «0010», что означает 10 минут.Как анализировать продолжительность в формате «HHmm» с использованием JodaTime?
Я нашел аналогичный билет (Parsing time strings like "1h 30min"), но я не могу заставить его работать должным образом.
Вот код:
PeriodFormatter hoursMinutes = new PeriodFormatterBuilder().appendHours().appendMinutes().toFormatter();
Duration duration = hoursMinutes.parsePeriod("0010").toStandardDuration();
duration.getStandardMinutes(); //Returns 600
По какой-то причине, я получаю 600 минут вместо 10. Так выглядит минуты интерпретировались как часы, но я не могу понять, почему. Я пробовал добавлять .maximumParsedDigits(2)
в течение нескольких часов, но результат был тот же.
Почему мой код не так ли? Есть ли другой способ инициализации парсера продолжительности? Что-то, где я мог бы просто использовать стандартный формат, такой как «HHmm»?
Ну ладно, ты был быстрее +1, поэтому я удалил свой ответ. Лично я предпочитаю шаблонный подход, например, используя мой lib Time4J: 'Duration d = Duration.formatter (ClockUnit.class," #hmm "). Parse (" 0010 "); длинные минуты = ClockUnit.MINUTES.convert (d); System.out.println (минуты); // 10' –
Мне также нравится ваше решение больше, но я не хочу добавлять другую библиотеку только для этого. – NeplatnyUdaj
Справедливая точка, миграция всегда работает. –