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"); } }); }