Как вычислить прошедшее время с этого времени с Joda-разовым?

Я должен вычислить, время протекло с одной определенной даты до настоящего времени, и отобразите ее с тем же форматом как вопросы о StackOverflow, т.е.:

15s ago
2min ago
2hours ago
2days ago
25th Dec 08

Вы знаете, как достигнуть его с библиотекой Java Joda-Time? Существует ли вспомогательный метод там, который уже реализует его, или я должен записать алгоритм сам?

69
задан Basil Bourque 22 November 2013 в 09:13
поделиться

2 ответа

Это можно сделать с помощью метода setCategureMargin () на оси домена.

Например, для графика категории

CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryMargin(0.15f);

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

-121--4817952-

НЕТ , Git просто не хранит такую (мета-) информацию , если вы не используете сторонние инструменты, такие как метастор или git-cache-meta. Единственной временной меткой, которая сохраняется, является время создания исправления/изменения (время автора) и время фиксации (время фиксатора).

Это по конструкции, поскольку Git - это система управления версиями, а не утилита резервного копирования или средство синхронизации.

-121--898651-

Чтобы рассчитать прошедшее время с помощью JodaTime, используйте Период . Для форматирования прошедшего времени в требуемом человеческом представлении используйте PeriodFormatter , который можно создать с помощью PeriodFormatterBuilder .

Вот пример:

DateTime myBirthDate = new DateTime(1978, 3, 26, 12, 35, 0, 0);
DateTime now = new DateTime();
Period period = new Period(myBirthDate, now);

PeriodFormatter formatter = new PeriodFormatterBuilder()
    .appendSeconds().appendSuffix(" seconds ago\n")
    .appendMinutes().appendSuffix(" minutes ago\n")
    .appendHours().appendSuffix(" hours ago\n")
    .appendDays().appendSuffix(" days ago\n")
    .appendWeeks().appendSuffix(" weeks ago\n")
    .appendMonths().appendSuffix(" months ago\n")
    .appendYears().appendSuffix(" years ago\n")
    .printZeroNever()
    .toFormatter();

String elapsed = formatter.print(period);
System.out.println(elapsed);

Это отпечаток к настоящему времени

3 seconds ago
51 minutes ago
7 hours ago
6 days ago
10 months ago
31 years ago

(Кашель, старый, кашель) Вы видите, что я принял во внимание месяцы и годы и настроил его, чтобы опустить значения, когда они равны нулю.

113
ответ дан 24 November 2019 в 13:45
поделиться

Существует небольшой класс помощника , что я довольно доволен.

8
ответ дан 24 November 2019 в 13:45
поделиться
Другие вопросы по тегам:

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