У меня есть вопрос относительно вычитания Joda DateTimes, и я использую Period, чтобы получить количество дат, часов, минут и секунд между ними.
Пример вывода: 2 дня 11h 23min 05se c
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime firstDate = formatter.parseDateTime(firstStringDateValue);
DateTime secondDate = formatter.parseDateTime(secondStringDateValue);
DurationFieldType[] types = {DurationFieldType.days(),
DurationFieldType.hours(),
DurationFieldType.minutes(),
DurationFieldType.seconds()};
Period period = new Period(firstDate, secondDate, PeriodType.forFields(types));
PeriodFormatter periodFormatter = new PeriodFormatterBuilder()
.minimumPrintedDigits(2)
.appendDays().appendSuffix(" Day", " Days").appendSeparator(" ")
.appendHours().appendSuffix("h").appendSeparator(" ")
.appendMinutes().appendSuffix("min").appendSeparator(" ")
.appendSeconds().appendSuffix("sec")
.toFormatter();
String result = periodFormatter.print(period);
Проблема в том, что дата начала больше даты окончания.
Результат примерно такой: -2 дня -11ч -23мин-05сек c
Так что мне было интересно, есть ли способ сделать так, чтобы это выглядело так: - 2 дня 11ч 23мин 05сек c, только с одним знаком «-» перед всем. Но используя функции, связанные с Joda.
Или, по крайней мере, способ сообщить мне, отрицательный ли период.
Я могу сделать это, используя манипуляции со строками, но это кажется слишком ручным.
Спасибо.