private void setupDateTimeInterpreter(final boolean shortDate) {
    mWeekView.setDateTimeInterpreter(
        new DateTimeInterpreter() {
          @Override
          public String interpretDate(Calendar date) {
            SimpleDateFormat weekdayNameFormat = new SimpleDateFormat("EEE", Locale.getDefault());
            String weekday = weekdayNameFormat.format(date.getTime());
            SimpleDateFormat format = new SimpleDateFormat(" M/d", Locale.getDefault());

            // All android api level do not have a standard way of getting the first letter of
            // the week day name. Hence we get the first char programmatically.
            // Details:
            // http://stackoverflow.com/questions/16959502/get-one-letter-abbreviation-of-week-day-of-a-date-in-java#answer-16959657
            if (shortDate) weekday = String.valueOf(weekday.charAt(0));
            return weekday.toUpperCase() + format.format(date.getTime());
          }

          @Override
          public String interpretTime(int hour) {
            return hour > 11 ? (hour - 12) + " PM" : (hour == 0 ? "12 AM" : hour + " AM");
          }
        });
  }