Период до строки [дубликат]

56
задан 25 October 2016 в 14:05
поделиться

2 ответа

Вам нужно нормализовать период, потому что если вы построите его с общим количеством секунд, то это единственное значение, которое оно имеет. Нормализация разбивает его на общее количество дней, минут, секунд и т. Д.

Редактировать ripper234 - Добавление TL; версия DR : PeriodFormat.getDefault () .print (period)

Например:

public static void main(String[] args) {
  PeriodFormatter daysHoursMinutes = new PeriodFormatterBuilder()
    .appendDays()
    .appendSuffix(" day", " days")
    .appendSeparator(" and ")
    .appendMinutes()
    .appendSuffix(" minute", " minutes")
    .appendSeparator(" and ")
    .appendSeconds()
    .appendSuffix(" second", " seconds")
    .toFormatter();

  Period period = new Period(72, 24, 12, 0);

  System.out.println(daysHoursMinutes.print(period));
  System.out.println(daysHoursMinutes.print(period.normalizedStandard()));
}

Будет печатать:

24 minutes and 12 seconds
3 days and 24 minutes and 12 seconds

Таким образом, вы можете увидеть, что вывод для ненормализованного периода просто игнорирует количество часов (он не преобразовывал 72 часа в 3 дня ).

91
ответ дан 24 November 2019 в 19:28
поделиться
    Period period = new Period();
    // prints 00:00:00
    System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
    period = period.plusSeconds(60 * 60 * 12);
    // prints 00:00:43200
    System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
    period = period.normalizedStandard();
    // prints 12:00:00
    System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
12
ответ дан 24 November 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: