Bonjour à tous,

Dans le cadre d'un script de tri d'informations par période je cherche à obtenir un string contenant la date du lundi d'une semaine désirée (ici semaine 34 pour l'exemple) au format yyyyMMdd. Voici le code en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Locale localeFR = new Locale("FR","fr");
Calendar calYMD = Calendar.getInstance(localeFR);
calYMD.setFirstDayOfWeek(Calendar.MONDAY);
calYMD.set(Calendar.WEEK_OF_YEAR , 34);
calYMD.set(Calendar.DAY_OF_WEEK , 1);
String dateYMD = sdf.format(calYMD.getTime());
Lors de mon premier essai je n'avais définit aucune locale et j'obtenais le dimanche précédant le lundi désiré (dû aux semaines dimanche->samedi du standard US).

Après avoir définit les locales FR et le jour de la semaine désiré j'obtiens une date complètement erronée.

J'ai cherché dans la doc Java, j'ai tenté de supprimer un à un ou d'intervertir les appels mais là je suis à court d'idées... si quelqu'un a une piste je suis preneur, j'ai dû rater ou mal comprendre une particularité des objets Calendar...

Merci pour votre temps.

Klund