У меня есть спецификация, которая вернет историю платежей JSON после успешной транзакции. Ответ третьей стороны JSON имеет поле для общего времени, затраченного на транзакцию. В качестве примера общее время, проведенное при составлении истории платежей, было «00: 10: 10.0». Как преобразовать этот формат в этот объект String в целочисленный примитив.Анализ времени в Java
ответ
Если вы не возражаете, используя внешнюю библиотеку, а затем с помощью Joda'sorg.joda.time.LocalTime
может помочь со строкой разборе:
String duration = "00:10:10.0";
int seconds = LocalTime.parse(duration).getMillisOfDay()/1000;
//returns 610
Пожалуйста, обратите внимание, что, так как вы соблюдать ИСО форматированием вы даже не необходимо явно указать разборный формат.
Кроме того, если вы используете Java-уже, чем Joda был использован в качестве вдохновения для новой даты/время библиотек доступны там, поэтому вы найдете подобный класс в стандартной библиотеке: LocalTime
Ответ Радыка правильный. Поскольку в Вопросе упоминается Длительность ISO 8601, я добавлю этот вывод строки.
java.time
Каркас java.time встроен в Java 8 и более поздних версий. Вдохновленный Joda-Time. Расширена в рамках проекта ThreeTen. Привлечен к Java 6 & 7 проектом ThreeTen-Backport и Android от проекта ThreeTenABP.
String durationAsLocalTimeString = "00:10:10.0";
LocalTime durationAsLocalTime = LocalTime.parse(durationAsLocalTimeString);
Duration duration = Duration.between(LocalTime.MIN , durationAsLocalTime);
String output = duration.toString();
PT10M10S
ISO 8601 Продолжительность Формат
Этот выход PT10M10S
является стандартным Duration format из PnYnMnDTnHnMnS
определяется ISO 8601. P
отмечает начало, T
отделяет часть лет-месяцев-дней от части часов-минут-секунд.
Я предлагаю сериализацию строк в этом формате. Использование формата времени дня, такого как 00:10:10.0
для представления прошедшего времени, является запутанным и подверженным ошибкам. Формат ISO 8601 является очевидным и интуитивным и решает проблему двусмысленности.
Как java.time, так и Joda-Time используют эти ISO 8601 форматы по умолчанию при разборе/генерации текстовых представлений значений даты и времени.
Duration duration = Duration.parse("PT10M10S");
- 1. Анализ времени в python
- 2. ISO 8601 Анализ интервала времени в Java
- 3. Анализ ввода времени пользователя в Java/GWT
- 4. Анализ времени с SimpleDateFormat.java
- 5. Анализ времени в Excel
- 6. Анализ времени в vb.net
- 7. Анализ запросов в реальном времени
- 8. Анализ спектрограммы в реальном времени
- 9. Краткий анализ времени в JavaScript
- 10. Анализ в режиме реального времени
- 11. Анализ времени от начала строки в C#
- 12. Анализ Разница во времени
- 13. Анализ сложности времени
- 14. Точный аналитический анализ и анализ времени Фишера
- 15. Анализ времени исполнения Javascript
- 16. Анализ времени выполнения
- 17. Анализ времени cdr
- 18. Анализ времени выполнения Z3
- 19. Анализ времени цикла?
- 20. анализ времени выполнения алгоритма
- 21. Анализ сложности времени сегментации
- 22. Анализ сложности времени алгоритма
- 23. Linearsort - анализ времени выполнения
- 24. Анализ времени алгоритма
- 25. Анализ времени на BST
- 26. Анализ веб-журнала в Java
- 27. Анализ журналов в реальном времени Решения Scala или Java
- 28. Как получить анализ журнала в реальном времени
- 29. Анализ строк по времени в CSV-данных
- 30. Анализ треугольника в Java
И что должно быть значением примитива 'int'? что ты уже испробовал? –
@NorbertRadyk Я хочу преобразовать эту конкретную строку в форму long/double/int, так как спецификация говорит, что это общее время, которое сделала транзакция. Я делаю простой раскол и вычисляю секунды. Как упоминается в спецификации как ISO 8601, следовательно, путаница. Хотите знать, есть ли что-то конкретное, чтобы заботиться о формате. – Amz
Вы пытались найти спецификацию для ISO 8601 и прочитать ее? Может помочь ... –