8

I need to find the current month and print it. I have the following code:

this.currentDate=LocalDate.now();
this.month = this.currentDate.getMonth();

The problem is that the month is in English and I need to print it in French, to match the rest of the website language. How can I select the language of the month provided by the LocalDate.now() method without needing to do a manual translation each time I need to display it?

honk
  • 9,137
  • 11
  • 75
  • 83
shas
  • 378
  • 4
  • 20

2 Answers2

9

You can convert the Month type into a String using getDisplayName(), which can change the locale to French as follows:

this.currentDate = LocalDate.now();
this.month = this.currentDate.getMonth().getDisplayName(TextStyle.FULL, Locale.FRANCE);
honk
  • 9,137
  • 11
  • 75
  • 83
shas
  • 378
  • 4
  • 20
6

You can use the DateTimeFormatter to create a formatter for French as follows:

final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE, dd MMMM, yyyy", Locale.FRENCH);
final String month = LocalDate.now().format(formatter);
honk
  • 9,137
  • 11
  • 75
  • 83
Bertijn Pauwels
  • 575
  • 1
  • 3
  • 17