Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get Week Number of LocalDate (Java 8) [duplicate]

I'm trying to get the Week Number of a full LocalDate with the format:

dd.MM.yyy

I haven't found a function in the Java 8 Date API wich returns the Week Number and i have tried to create a algorithm, but it did'nt work.

like image 766
YvesHendseth Avatar asked Sep 24 '14 08:09

YvesHendseth


2 Answers

One small warning. I haven't tested this yet, but looking at the API documentation of WeekFields and LocalDate.get, you should do something like:

LocalDate date = ...;
// Or use a specific locale, or configure your own rules
WeekFields weekFields = WeekFields.of(Locale.getDefault()); 
int weekNumber = date.get(weekFields.weekOfWeekBasedYear());
like image 159
Mark Rotteveel Avatar answered Oct 03 '22 08:10

Mark Rotteveel


The answer of Mark Rotteveel is almost right and again an example which kind of confusion potential there is in the class WeekFields (similar sounding method names, but deviating from intuitive civil usage). The right code requires another field:

LocalDate date = LocalDate.now();
TemporalField woy = WeekFields.of(Locale.getDefault()).weekOfWeekBasedYear(); 
int weekNumber = date.get(woy);

See also the similar debate on this SO-post, especially the discussion and comments about the answer of @kleopatra.

like image 38
Meno Hochschild Avatar answered Sep 30 '22 08:09

Meno Hochschild