Ваш вывод логичен, но toString () обычно и, безусловно, в этом случае является служебной функцией, предназначенной главным образом для отладки.
Для локализованных дат вам нужно использовать DateFormatter, например:
Calendar calendar=Calendar.getInstance();
calendar.set(2011,0,1);
String formatted=DateFormat.getLongDateFormat(this).format(calendar.getTime());
button.setText(formatted);
В этом примере используется один из трех стандартных форматеров даты, но вы можете получить достаточно конкретную информацию о формате, особенно вызывая DateFormat.getInstance (context) .getDateInstance, который позволяет вам устанавливать больше параметров, включая локаль.Здесь немного подробнее: http://developer.android.com/reference/java/text/DateFormat.html
Надеюсь, это то, что вы искали.