TL; DR
LocalDate.now( ZoneId.of( "Africa/Tunis" ) ).with( TemporalAdjuster.previousOrSame( DayOfWeek.MONDAY ) )
java.time
No need for an external library like DateUtils . Use the java.time classes built into Java 8 and later.
It seems like your real question is how to get the first day of the week for a specific date.
Timezone
The time zone is critical for determining the date. At any given moment, the date changes around the world by zone. For example, a few minutes after midnight in Paris, France is a new day, still "yesterday" in Montreal Quebec .
Specify the time zone name in continent/region format, such as America/Montreal , Africa/Casablanca or Pacific/Auckland . Never use pseudo-zones with 3-4 letters, such as EST or IST , as they are not real time zones, and are not standardized or even unique (!).
ZoneId z = ZoneId.of( "America/Montreal" ) ;
The LocalDate class represents a date value only without time and without a time zone.
LocalDate today = LocalDate.now( z );
To get the first day of the week for this date, we must determine the first day of the week. This definition is culture dependent. In the United States, we usually mean Sunday. Most of the rest of the world means Monday. Whatever it is for your users, specify with the DayOfWeek enum object.
To go from our date to this date, use the TemporalAdjuster implemented in the TemporalAdjusters class.
LocalDate firstOfWeek = today.with( TemporalAdjuster.previousOrSame( DayOfWeek.MONDAY ) ) ;