shas
shas

Reputation: 418

How can I change the language of the months provided by LocalDate?

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?

Upvotes: 9

Views: 8531

Answers (3)

Karpinski
Karpinski

Reputation: 157

In my case there was not the ENUM country option then I used default and its solved:

LocalDate.now().getMonth().getDisplayName(TextStyle.FULL, Locale.getDefault())

Upvotes: 0

shas
shas

Reputation: 418

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

Upvotes: 12

Bertijn Pauwels
Bertijn Pauwels

Reputation: 585

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

Upvotes: 6

Related Questions