final int basePosition = Integer.MAX_VALUE;
final DateTime baseDate = currentDate();
...
//в bind
final long delta = basePosition - currentPosition;//всегда будет больше нуля
final DateTime currentDate = baseDate.minusDays(delta); //сегодняшняя дата минус количество дней до той, которую биндим.
//где-то ещё скроллим к текущей позиции(Integer.MAX_VALUE), или играемся с <a href="https://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.html#setReverseLayout(boolean)">reverseLayout</a> / <a href="https://developer.android.com/reference/android/widget/AbsListView.html#setStackFromBottom(boolean)">stackFromBottom</a>
final int basePosition = adapter.getCount()/2;
final DateTime baseDate = currentDate(); //любая дата, какую хотите
...
recycler.scrollToPosition(basePosition); //где-то вне адаптера
...
//в bindViewHolder
final long delta = currentPosition - basePosition;
final DateTime currentDate = delta > 0 ? baseDate.plusDays(delta) : baseDate.minusDays(-delta); //тут я не знаю, что будет, если отрицательное число отправить, надо проверять, но вот так будет точно ок.
final DateTime currentDate = baseDate.plusDays(currentPosition);
Удивительно не то, что они пишут на нём, а то, что они пишут на нём очень важную часть своей системы.