Formatter - самый гибкий вариант. Существуют удобные методы, такие как String.format () и printf (), которые тоже используют Formatter.
Date d = new Date();
Locale saudi = new Locale("ar","SA");
Formatter formatter = new Formatter(System.out,Locale.FRENCH);
formatter.format("month: %tB\n", d);
System.out.printf(saudi, "month: %tB\n", d);
месяц: декабрь
месяц: ديسمبر