Поскольку вы уже используете Joda-Time, я рекомендую вам выбрать один из двух вариантов:
- Придерживайтесь Joda-Time на данный момент.
- Обновление до java .time , современный Java API даты и времени и преемник Joda-Time.
Опция, которую я, безусловно, от всей души отчаиваю, возвращается к Date
и SimpleDateFOrmat
с Java 1.0 и 1.1. Эти классы плохо разработаны и давно устарели, последние, в частности, печально известны своими хлопотами.
Палка с Joda-Time
Если вы хотите, чтобы время из вашего DateTime
было отформатировано в String
, например, для вывода пользователю:
DateTime orderDateFrom = new DateTime(2020, 1, 17, 20, 19, 0, DateTimeZone.forID("Mexico/BajaSur"));
DateTimeFormatter timeFormatter = DateTimeFormat.forPattern("HH:mm:ss");
String formattedTime = orderDateFrom.toString(timeFormatter);
System.out.println("Order time: " + formattedTime);
Выходные данные из этого фрагмента:
Время заказа: 20: 19: 00
Если Вы хотите указать время суток в качестве объекта, который вы можете использовать для дальнейшей обработки:
LocalTime orderTime = orderDateFrom.toLocalTime();
System.out.println("Order time: " + orderTime);
Время заказа: 20: 19: 00.000
Мы заметили, что это время три десятичных знака на секунде минуты также печатаются, так как метод no-arg toString
делает это. Вы можете отформатировать LocalTime
, используя тот же форматер, что и выше, чтобы получить ту же строку, если хотите.
Заметка о java .time о Android
Если программирование для Android API уровня 26 и / или выше, java .time поставляется встроенным. Если вам нужно принять во внимание более низкие уровни API, java .time становится внешней зависимостью, как Joda-Time: ThreeTenABP. Это ThreeTen для JSR-310, где впервые было описано java .time, и ABP для Android Backport. См. Ссылки внизу.
Код будет аналогичным, а не идентичным коду с использованием Joda-Time выше.
Ссылки