Время форматирования с библиотекой PrettyTime

Обработка новостей RSS каналы и пытается отобразить их с истекшим временем (как 2 минуты назад, 1 месяц назад). Я использую библиотеку PrettyTime для Android. Это прекрасно работает для таких форматов дат

<pubDate>Thu, 04 Jan 2018 11:00:16 +0000</pubDate>,

Однако, если попытаться разобрать, в следующем формате

<updated>2017-12-30T11:10:44+00:00</updated>

приложение падает. Вот как я разбираю даты в RecyclerView

PrettyTime p = new PrettyTime(Locale.ENGLISH);
@Override
public void onBindViewHolder(final RecyclerViewAdapter.ViewHolder holder, int position) {
    setupImageLoader();

    final News newsItem = newsItems.get(position);
    String imgUrl = newsItem.getNewsImage();
    holder.date_updated.setText(p.format(new Date(newsItem.getUpdated())));
    holder.title.setText(newsItem.getTitle());

Любые идеи, как я могу решить эту проблему? Спасибо!

1 ответ

Это потому что Date класс не понял данный формат даты. Вы можете использовать класс SimpleDateFormat для разбора даты. Для вашего примера код будет следующим:

SimpleDateFormat format = new SimpleDateFormat("y-MM-dd'T'H:m:ssXXX");
Date date = new Date(format.parse(newsItem.getUpdated()));
Другие вопросы по тегам