Я хочу разобрать строки длительности в Java 7, например PT45M . Я пытаюсь с SimpleDataFormat, но не существует ни одного шаблона, как PnDTnHnMn.nS. Есть ли способ сделать это?
Как вы можете знать или не знать, и как говорит другой ответ, класс Duration java, время, введенное в Java 8, может это сделать. Хорошей новостью является то, что java .time был перенесен на Java 6 и 7 тоже. Получить бэкпорт по ссылке внизу и go впереди. Например:
Duration
System.out.println("Java version: " + System.getProperty("java.version")); Duration dur = Duration.parse("PT45M"); System.out.println("Parsed duration: " + dur); System.out.println("Converted to whole seconds: " + dur.getSeconds());
На моем компьютере вывод этого фрагмента кода был:
Java version: 1.7.0_67 Parsed duration: PT45M Converted to whole seconds: 2700
java.time
Посмотрите на Java Документация по продолжительности . Вы можете преобразовать эту строку в объект длительности с помощью метода parse и получить секунды с помощью метода getSeconds (). Затем вы можете преобразовать секунды в обычные java объекты DateTime API.