Je faisais récemment une question sur HackerRank où on m'a demandé de trouver le jour à une date donnée. Je SimpleDateFormat
trouver le jour.
Voici mon code:
String sd = Integer.toString(day) + "-" + Integer.toString(month) + "-" + Integer.toString(year);
try {
Date d = new SimpleDateFormat("DD-MM-yyyy").parse(sd);
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
return sdf.format(d).toUpperCase();
} catch (Exception e) {
return "";
}
Le plus drôle est que le code ci - dessus est correct pour l' impression résultat la date d'aujourd'hui par exemple 04/03/2020 ( Friday
) mais il est de retour incorrect jour le 08.05.2015 (il devrait revenir Wednesday
mais il retourne Monday
).
S'il vous plaît aidez-moi à trouver le problème.
Je vous remercie.
EDIT je faisais une petite erreur que je voulais utiliser le jour du mois, pour lequel dd
doit être utilisé. DD
représente le jour de l'année. Cela a résolu mon problème!
Vous devriez utiliser SimpleDateFormat("dd-MM-yyyy")
.
DD est pour le jour de l'année, comme il y a 365 jours par an.